diff --git a/README.md b/README.md index 96896a5..51b4eb5 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,8 @@ docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xa Если клиенты из GUI создаются в неправильной подсети (например `10.252.1.x` вместо вашей `10.66.66.x`), запустите установщик с `--gui-reset-db yes`, затем создайте клиента заново и пересканируйте QR. +Почему так бывает: `wireguard-ui` хранит глобальные настройки в своей БД. Если БД была создана ранее со старой подсетью, новые переменные окружения не всегда перезаписывают эти значения автоматически. + ## Важные пути - Серверный конфиг: `/etc/wireguard/wg0.conf` diff --git a/server/install_server.sh b/server/install_server.sh index b81a48e..0e6f4ef 100755 --- a/server/install_server.sh +++ b/server/install_server.sh @@ -290,6 +290,18 @@ setup_gui() { elif [[ -n "$(find /opt/wireguard-ui/db -mindepth 1 -maxdepth 1 2>/dev/null)" ]]; then log_warn "Обнаружена существующая БД GUI. Дефолты (подсеть/endpoint/пароль) могли сохраниться старыми." log_warn "Если нужен чистый старт GUI, перезапустите с --gui-reset-db yes" + + # Частый кейс миграции: старая БД wireguard-ui хранит дефолт 10.252.1.0/24. + # В интерактивном режиме даем быстрый вариант синхронизации с текущей подсетью WG. + if (( ! NON_INTERACTIVE )); then + if grep -aEq '10\\.252\\.1\\.' /opt/wireguard-ui/db/* 2>/dev/null; then + log_warn "В БД GUI обнаружены старые значения подсети (10.252.1.x)." + if confirm "Сбросить БД GUI сейчас, чтобы синхронизировать подсеть с ${WG_NETWORK}?"; then + rm -rf /opt/wireguard-ui/db/* + log_warn "БД GUI очищена по подтверждению пользователя." + fi + fi + fi fi cat > /opt/wireguard-ui/docker-compose.yml <