архитектура: исправление миграции и улучшение интерфейса VPS (v1.1.0)
This commit is contained in:
parent
40a6950c6f
commit
ee0f8ceaf3
27
rproxy
27
rproxy
|
|
@ -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.0.9"
|
VERSION="1.1.0"
|
||||||
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"
|
||||||
|
|
@ -93,11 +93,16 @@ load_vps() {
|
||||||
|
|
||||||
migrate_config() {
|
migrate_config() {
|
||||||
mkdir -p "$VPS_DIR" "$SERVICES_DIR" "$PID_DIR"
|
mkdir -p "$VPS_DIR" "$SERVICES_DIR" "$PID_DIR"
|
||||||
if [ -f "$CONF_FILE" ] && [ ! -f "$VPS_DIR/default.conf" ]; then
|
|
||||||
msg "Миграция конфигурации в новый формат..."
|
# Проверка на "битый" (пустой) конфиг после неудачной миграции (1.0.7-1.0.8)
|
||||||
# Важно: загружаем текущие настройки перед миграцией
|
local broken=0
|
||||||
|
[ -f "$VPS_DIR/default.conf" ] && ! grep -q "VPS_HOST=\"[0-9]" "$VPS_DIR/default.conf" && broken=1
|
||||||
|
|
||||||
|
if [ -f "$CONF_FILE" ] && { [ ! -f "$VPS_DIR/default.conf" ] || [ "$broken" -eq 1 ]; }; then
|
||||||
|
# Если rproxy.conf ещё содержит данные серверов (не пустой)
|
||||||
|
if grep -q "VPS_HOST=" "$CONF_FILE"; then
|
||||||
|
msg "Восстановление конфигурации VPS..."
|
||||||
. "$CONF_FILE"
|
. "$CONF_FILE"
|
||||||
# Копируем параметры в профиль default
|
|
||||||
cat > "$VPS_DIR/default.conf" <<EOF
|
cat > "$VPS_DIR/default.conf" <<EOF
|
||||||
VPS_HOST="$VPS_HOST"
|
VPS_HOST="$VPS_HOST"
|
||||||
VPS_PORT="$VPS_PORT"
|
VPS_PORT="$VPS_PORT"
|
||||||
|
|
@ -105,12 +110,16 @@ VPS_USER="$VPS_USER"
|
||||||
VPS_AUTH="$VPS_AUTH"
|
VPS_AUTH="$VPS_AUTH"
|
||||||
VPS_PASS="$VPS_PASS"
|
VPS_PASS="$VPS_PASS"
|
||||||
EOF
|
EOF
|
||||||
# В основном конфиге оставляем только глобальные настройки
|
# Очищаем rproxy.conf от старых системных переменных
|
||||||
cat > "$CONF_FILE.tmp" <<EOF
|
cat > "$CONF_FILE.tmp" <<EOF
|
||||||
CERTBOT_EMAIL="$CERTBOT_EMAIL"
|
CERTBOT_EMAIL="$CERTBOT_EMAIL"
|
||||||
EOF
|
EOF
|
||||||
mv "$CONF_FILE.tmp" "$CONF_FILE"
|
mv "$CONF_FILE.tmp" "$CONF_FILE"
|
||||||
chmod 600 "$VPS_DIR/default.conf" "$CONF_FILE"
|
elif [ "$broken" -eq 1 ] && [ ! "$(ls -A "$SERVICES_DIR")" ]; then
|
||||||
|
# Если всё пусто и сломано — удаляем пустой дефолт, чтобы запустить чистый setup
|
||||||
|
rm -f "$VPS_DIR/default.conf"
|
||||||
|
fi
|
||||||
|
[ -f "$VPS_DIR/default.conf" ] && chmod 600 "$VPS_DIR/default.conf"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -873,7 +882,9 @@ do_setup() {
|
||||||
idx=$((idx + 1))
|
idx=$((idx + 1))
|
||||||
VPS_HOST="" # Сброс перед загрузкой
|
VPS_HOST="" # Сброс перед загрузкой
|
||||||
. "$f"
|
. "$f"
|
||||||
printf " ${BOLD}%d)${NC} %s (${DIM}%s@%s:%s${NC})\n" "$idx" "$(basename "$f" .conf)" "$VPS_USER" "$VPS_HOST" "$VPS_PORT"
|
local v_info="${DIM}${VPS_USER}@${VPS_HOST}:${VPS_PORT}${NC}"
|
||||||
|
[ -z "$VPS_HOST" ] && v_info="${RED}Не настроен${NC}"
|
||||||
|
printf " ${BOLD}%d)${NC} %-14s %b\n" "$idx" "$(basename "$f" .conf)" "$v_info"
|
||||||
vps_list="$vps_list $(basename "$f" .conf)"
|
vps_list="$vps_list $(basename "$f" .conf)"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue