feat(server): добавить --gui-reset-db для синхронизации дефолтов GUI
This commit is contained in:
@@ -82,6 +82,11 @@ sudo bash server/install_server.sh
|
|||||||
tmp="$(mktemp -d)" && curl -fL "https://git.ruslan.xyz/ruslan/Wireguard_server/archive/main.tar.gz" -o "$tmp/repo.tar.gz" && tar -xzf "$tmp/repo.tar.gz" -C "$tmp" && bash "$tmp/wireguard_server/server/install_server.sh"
|
tmp="$(mktemp -d)" && curl -fL "https://git.ruslan.xyz/ruslan/Wireguard_server/archive/main.tar.gz" -o "$tmp/repo.tar.gz" && tar -xzf "$tmp/repo.tar.gz" -C "$tmp" && bash "$tmp/wireguard_server/server/install_server.sh"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Если GUI уже ранее запускался и нужно переинициализировать его дефолты (подсеть, endpoint, пользователь/пароль), добавьте:
|
||||||
|
```bash
|
||||||
|
--gui-reset-db yes
|
||||||
|
```
|
||||||
|
|
||||||
Скрипт интерактивно спросит недостающие данные:
|
Скрипт интерактивно спросит недостающие данные:
|
||||||
- публичный IP (если не определился автоматически)
|
- публичный IP (если не определился автоматически)
|
||||||
- порт WireGuard
|
- порт WireGuard
|
||||||
@@ -287,6 +292,8 @@ docker ps -aq --filter 'label=com.docker.compose.service=wireguard-ui' | xargs -
|
|||||||
docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xargs -r docker rm -f
|
docker ps -a --format '{{.Names}}' | grep -E '(^|[_-])wireguard-ui($|[_-])' | xargs -r docker rm -f
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Если клиенты из GUI создаются в неправильной подсети (например `10.252.1.x` вместо вашей `10.66.66.x`), запустите установщик с `--gui-reset-db yes`, затем создайте клиента заново и пересканируйте QR.
|
||||||
|
|
||||||
## Важные пути
|
## Важные пути
|
||||||
|
|
||||||
- Серверный конфиг: `/etc/wireguard/wg0.conf`
|
- Серверный конфиг: `/etc/wireguard/wg0.conf`
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ GUI_USER="admin"
|
|||||||
GUI_PASSWORD=""
|
GUI_PASSWORD=""
|
||||||
GUI_PASSWORD_GENERATED=0
|
GUI_PASSWORD_GENERATED=0
|
||||||
GUI_SESSION_SECRET=""
|
GUI_SESSION_SECRET=""
|
||||||
|
GUI_RESET_DB="no"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<'USAGE'
|
cat <<'USAGE'
|
||||||
@@ -47,6 +48,7 @@ usage() {
|
|||||||
--gui-port <port> Порт GUI (по умолчанию: 5000)
|
--gui-port <port> Порт GUI (по умолчанию: 5000)
|
||||||
--gui-user <user> Логин GUI (по умолчанию: admin)
|
--gui-user <user> Логин GUI (по умолчанию: admin)
|
||||||
--gui-password <pass> Пароль GUI (если не указан, будет запрос)
|
--gui-password <pass> Пароль GUI (если не указан, будет запрос)
|
||||||
|
--gui-reset-db <yes|no> Сбросить БД GUI, чтобы применить новые дефолты (по умолчанию: no)
|
||||||
|
|
||||||
-h, --help Показать помощь
|
-h, --help Показать помощь
|
||||||
USAGE
|
USAGE
|
||||||
@@ -88,6 +90,8 @@ parse_args() {
|
|||||||
GUI_USER="$2"; shift 2 ;;
|
GUI_USER="$2"; shift 2 ;;
|
||||||
--gui-password)
|
--gui-password)
|
||||||
GUI_PASSWORD="$2"; shift 2 ;;
|
GUI_PASSWORD="$2"; shift 2 ;;
|
||||||
|
--gui-reset-db)
|
||||||
|
GUI_RESET_DB="$2"; shift 2 ;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
usage; exit 0 ;;
|
usage; exit 0 ;;
|
||||||
*)
|
*)
|
||||||
@@ -155,6 +159,7 @@ collect_inputs() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
GUI_SESSION_SECRET="$(random_alnum 32)"
|
GUI_SESSION_SECRET="$(random_alnum 32)"
|
||||||
|
[[ "$GUI_RESET_DB" == "yes" || "$GUI_RESET_DB" == "no" ]] || die "--gui-reset-db должен быть yes или no"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
validate_inputs
|
validate_inputs
|
||||||
@@ -279,6 +284,14 @@ setup_gui() {
|
|||||||
mkdir -p /opt/wireguard-ui/{db,data}
|
mkdir -p /opt/wireguard-ui/{db,data}
|
||||||
safe_chmod_700 /opt/wireguard-ui
|
safe_chmod_700 /opt/wireguard-ui
|
||||||
|
|
||||||
|
if [[ "$GUI_RESET_DB" == "yes" ]]; then
|
||||||
|
rm -rf /opt/wireguard-ui/db/*
|
||||||
|
log_warn "БД GUI очищена. Дефолтные настройки 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"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > /opt/wireguard-ui/docker-compose.yml <<EOF_COMPOSE
|
cat > /opt/wireguard-ui/docker-compose.yml <<EOF_COMPOSE
|
||||||
services:
|
services:
|
||||||
wireguard-ui:
|
wireguard-ui:
|
||||||
@@ -373,6 +386,7 @@ GUI адрес: http://${GUI_HOST}:${GUI_PORT}
|
|||||||
GUI логин: ${GUI_USER}
|
GUI логин: ${GUI_USER}
|
||||||
GUI статус: ${gui_status}
|
GUI статус: ${gui_status}
|
||||||
$(if [[ "$GUI_ENABLE" == "yes" && "$GUI_PASSWORD_GENERATED" -eq 1 ]]; then echo "GUI пароль: ${GUI_PASSWORD} (сгенерирован, рекомендуется заменить)"; fi)
|
$(if [[ "$GUI_ENABLE" == "yes" && "$GUI_PASSWORD_GENERATED" -eq 1 ]]; then echo "GUI пароль: ${GUI_PASSWORD} (сгенерирован, рекомендуется заменить)"; fi)
|
||||||
|
GUI reset db: ${GUI_RESET_DB}
|
||||||
|
|
||||||
Helper для peer: /usr/local/sbin/wg-peerctl
|
Helper для peer: /usr/local/sbin/wg-peerctl
|
||||||
Лог установки: ${LOG_FILE}
|
Лог установки: ${LOG_FILE}
|
||||||
|
|||||||
Reference in New Issue
Block a user