fix(gui): интерактивно предлагать сброс БД при старой подсети 10.252.1.x

This commit is contained in:
Ruslan
2026-04-14 00:48:04 +03:00
parent 99136b5403
commit cbc2f5bf45
2 changed files with 14 additions and 0 deletions

View File

@@ -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. Если клиенты из GUI создаются в неправильной подсети (например `10.252.1.x` вместо вашей `10.66.66.x`), запустите установщик с `--gui-reset-db yes`, затем создайте клиента заново и пересканируйте QR.
Почему так бывает: `wireguard-ui` хранит глобальные настройки в своей БД. Если БД была создана ранее со старой подсетью, новые переменные окружения не всегда перезаписывают эти значения автоматически.
## Важные пути ## Важные пути
- Серверный конфиг: `/etc/wireguard/wg0.conf` - Серверный конфиг: `/etc/wireguard/wg0.conf`

View File

@@ -290,6 +290,18 @@ setup_gui() {
elif [[ -n "$(find /opt/wireguard-ui/db -mindepth 1 -maxdepth 1 2>/dev/null)" ]]; then elif [[ -n "$(find /opt/wireguard-ui/db -mindepth 1 -maxdepth 1 2>/dev/null)" ]]; then
log_warn "Обнаружена существующая БД GUI. Дефолты (подсеть/endpoint/пароль) могли сохраниться старыми." log_warn "Обнаружена существующая БД GUI. Дефолты (подсеть/endpoint/пароль) могли сохраниться старыми."
log_warn "Если нужен чистый старт GUI, перезапустите с --gui-reset-db yes" 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 fi
cat > /opt/wireguard-ui/docker-compose.yml <<EOF_COMPOSE cat > /opt/wireguard-ui/docker-compose.yml <<EOF_COMPOSE