Installer: ALLOW_048=y updates a 0.4.8 install without the wipe
ci / check (push) Failing after 11m57s
release / release (push) Successful in 19m38s

0.4.8 data migrates to 0.5.0, so the outdated-install gate can be skipped for
it on request. The red card mentions the flag when the old version is 0.4.8;
awg-ctrl passes its environment through, so ALLOW_048=y awg-ctrl works too.
This commit is contained in:
2026-10-29 23:11:30 +03:00
parent 67204ddc25
commit 2b2ebdcfd0
+11
View File
@@ -902,6 +902,8 @@ card_line "$ACC"
# (WIPE=y): пользователи, мастер-ключи, ключи API, ключи сервера и ноды — всё заново. Старые базы # (WIPE=y): пользователи, мастер-ключи, ключи API, ключи сервера и ноды — всё заново. Старые базы
# уходят в бэкап (*.bak-…), как при обычной переустановке, но перенести их нельзя. Версия — из # уходят в бэкап (*.bak-…), как при обычной переустановке, но перенести их нельзя. Версия — из
# .env прежней установки (он есть с 0.2.0); нет его — версия неизвестна и тоже считается устаревшей. # .env прежней установки (он есть с 0.2.0); нет его — версия неизвестна и тоже считается устаревшей.
# ALLOW_048=y — исключение для 0.4.8: её данные 0.5.0 переносит, и её можно обновить как обычно
# (через меню awg-ctrl — ALLOW_048=y awg-ctrl, окружение доходит до установщика).
MIN_UPGRADE_VERSION="0.5.0" MIN_UPGRADE_VERSION="0.5.0"
version_lt() { [[ "$1" != "$2" && "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -1)" == "$1" ]]; } version_lt() { [[ "$1" != "$2" && "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -1)" == "$1" ]]; }
WIPE="n" WIPE="n"
@@ -912,6 +914,11 @@ if [[ -d "$PROJECT" ]]; then
if [[ -z "$PREV_VERSION" ]] || version_lt "${PREV_VERSION%%-*}" "$MIN_UPGRADE_VERSION"; then if [[ -z "$PREV_VERSION" ]] || version_lt "${PREV_VERSION%%-*}" "$MIN_UPGRADE_VERSION"; then
OUTDATED="y" OUTDATED="y"
fi fi
if [[ "$OUTDATED" == "y" && "${PREV_VERSION%%-*}" == "0.4.8" && "${ALLOW_048:-}" =~ ^([Yy]|yes|1)$ ]]; then
OUTDATED="n"
echo
warn "Версия 0.4.8 старше ${MIN_UPGRADE_VERSION}, но задан ALLOW_048 — обновление без сброса данных"
fi
fi fi
outdated_card() { outdated_card() {
echo echo
@@ -926,6 +933,10 @@ outdated_card() {
card_line "$RED" card_line "$RED"
card_line "$RED" "Выданные ключи перестанут работать — клиентам нужно будет выдать новые." card_line "$RED" "Выданные ключи перестанут работать — клиентам нужно будет выдать новые."
card_line "$RED" "${DIM}Старые базы останутся в бэкапе (*.bak-…), но перенести их в ${VERSION} нельзя.${NC}" card_line "$RED" "${DIM}Старые базы останутся в бэкапе (*.bak-…), но перенести их в ${VERSION} нельзя.${NC}"
if [[ "${PREV_VERSION%%-*}" == "0.4.8" ]]; then
card_line "$RED"
card_line "$RED" "Для 0.4.8 есть исключение: ${BLD}ALLOW_048=y bash install.sh${NC} — обновление с сохранением данных."
fi
card_line "$RED" card_line "$RED"
echo echo
} }