Добавлена автоматизация Basic Auth через глобальные настройки, версия 1.4.2

This commit is contained in:
Petro1990 2026-03-13 21:46:41 +03:00
parent eabfe726d8
commit b8786c79e9
1 changed files with 50 additions and 7 deletions

57
rproxy
View File

@ -3,7 +3,7 @@
# Публикация локальных сервисов через SSH-туннели + nginx на VPS # Публикация локальных сервисов через SSH-туннели + nginx на VPS
# http://5.104.75.50:3000/Petro1990/rProxy # http://5.104.75.50:3000/Petro1990/rProxy
VERSION="1.4.1" VERSION="1.4.2"
CONF_DIR="/opt/etc/rproxy" CONF_DIR="/opt/etc/rproxy"
CONF_FILE="$CONF_DIR/rproxy.conf" CONF_FILE="$CONF_DIR/rproxy.conf"
SERVICES_DIR="$CONF_DIR/services" SERVICES_DIR="$CONF_DIR/services"
@ -523,12 +523,24 @@ do_add_interactive() {
case "$REPLY" in case "$REPLY" in
д|Д|y|Y|да|yes) д|Д|y|Y|да|yes)
use_ndm_auth="yes" use_ndm_auth="yes"
prompt "Введите имя пользователя [admin]: " local def_user="${DEFAULT_AUTH_USER:-admin}"
local user="${REPLY:-admin}"
prompt "Введите пароль для '$user' (можно от роутера): " if [ -n "$DEFAULT_AUTH_PASS" ]; then
local pass="$REPLY" printf " ${DIM}Будут использованы сохраненные данные: $def_user / *****${NC}\n"
[ -z "$pass" ] && { warn "Пароль не может быть пустым"; pause; return; } prompt "Использовать их? (д/н) [д]: "
htpasswd_line=$(gen_htpasswd "$user" "$pass") if [ "${REPLY:-д}" = "д" ] || [ "${REPLY:-д}" = "y" ]; then
htpasswd_line=$(gen_htpasswd "$def_user" "$DEFAULT_AUTH_PASS")
fi
fi
if [ -z "$htpasswd_line" ]; then
prompt "Введите имя пользователя [$def_user]: "
local user="${REPLY:-$def_user}"
prompt "Введите пароль для '$user': "
local pass="$REPLY"
[ -z "$pass" ] && { warn "Пароль не может быть пустым"; pause; return; }
htpasswd_line=$(gen_htpasswd "$user" "$pass")
fi
;; ;;
esac esac
@ -1200,6 +1212,7 @@ do_setup() {
draw_separator draw_separator
printf " ${BOLD}901)${NC} Добавить новый VPS\n" printf " ${BOLD}901)${NC} Добавить новый VPS\n"
[ "$idx" -gt 0 ] && printf " ${BOLD}902)${NC} ❌ Удалить VPS\n" [ "$idx" -gt 0 ] && printf " ${BOLD}902)${NC} ❌ Удалить VPS\n"
printf " ${BOLD}903)${NC} 🔑 Пароль публикации по умолчанию\n"
printf " ${BOLD}0)${NC} Назад\n" printf " ${BOLD}0)${NC} Назад\n"
prompt "Выберите действие: " prompt "Выберите действие: "
@ -1207,6 +1220,7 @@ do_setup() {
0) return ;; 0) return ;;
901) do_add_vps ;; 901) do_add_vps ;;
902) [ "$idx" -gt 0 ] && do_delete_vps_interactive "$vps_list" ;; 902) [ "$idx" -gt 0 ] && do_delete_vps_interactive "$vps_list" ;;
903) do_change_auth_defaults ;;
[1-9]*) [1-9]*)
local sel_vps=$(echo "$vps_list" | cut -d' ' -f"$REPLY") local sel_vps=$(echo "$vps_list" | cut -d' ' -f"$REPLY")
[ -n "$sel_vps" ] && do_add_vps "$sel_vps" [ -n "$sel_vps" ] && do_add_vps "$sel_vps"
@ -1229,6 +1243,35 @@ do_delete_vps_interactive() {
pause pause
} }
do_change_auth_defaults() {
draw_box "Настройки публикации (Basic Auth)"
printf "\n"
printf " Эти данные будут предлагаться при защите новых сервисов.\n"
prompt "Имя пользователя [${DEFAULT_AUTH_USER:-admin}]: "
local user="${REPLY:-${DEFAULT_AUTH_USER:-admin}}"
prompt "Пароль (оставьте пустым чтобы не менять): "
local pass="$REPLY"
if [ -z "$pass" ] && [ -n "$DEFAULT_AUTH_PASS" ]; then
pass="$DEFAULT_AUTH_PASS"
fi
[ -z "$pass" ] && { warn "Пароль не может быть пустым"; pause; return; }
# Сохраняем в конфиг
sed -i "/DEFAULT_AUTH_USER=/d" "$CONF_FILE"
sed -i "/DEFAULT_AUTH_PASS=/d" "$CONF_FILE"
echo "DEFAULT_AUTH_USER=\"$user\"" >> "$CONF_FILE"
echo "DEFAULT_AUTH_PASS=\"$pass\"" >> "$CONF_FILE"
msg "Данные успешно сохранены!"
DEFAULT_AUTH_USER="$user"
DEFAULT_AUTH_PASS="$pass"
pause
}
do_add_vps() { do_add_vps() {
local vps_id="${1:-}" local vps_id="${1:-}"
local is_new=0 local is_new=0