mirror of
https://github.com/andrey271192/amnezia_web-PRO.git
synced 2026-09-20 14:42:00 +00:00
fix: refresh stale awg profile snapshots
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "amnezia-admin",
|
"name": "amnezia-admin",
|
||||||
"version": "1.2.29",
|
"version": "1.2.30",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "amnezia-admin",
|
"name": "amnezia-admin",
|
||||||
"version": "1.2.29",
|
"version": "1.2.30",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.21.2"
|
"express": "^4.21.2"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "amnezia-admin",
|
"name": "amnezia-admin",
|
||||||
"version": "1.2.29",
|
"version": "1.2.30",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "amnezia_web-PRO — веб-панель AmneziaWG: несколько инстансов, WARP, каскад/Endpoint, экспорт .conf (Docker)",
|
"description": "amnezia_web-PRO — веб-панель AmneziaWG: несколько инстансов, WARP, каскад/Endpoint, экспорт .conf (Docker)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
@@ -134,7 +134,9 @@ fi
|
|||||||
|
|
||||||
# AWG_PROFILES: не терять при апдейте без переменной (пропадает список «Инстанс»).
|
# AWG_PROFILES: не терять при апдейте без переменной (пропадает список «Инстанс»).
|
||||||
AWG_PROFILE_SNAPSHOT="/root/amnezia-admin.awg-profiles.json"
|
AWG_PROFILE_SNAPSHOT="/root/amnezia-admin.awg-profiles.json"
|
||||||
|
AWG_PROFILES_EXPLICIT=0
|
||||||
if [[ -n "${AWG_PROFILES:-}" ]]; then
|
if [[ -n "${AWG_PROFILES:-}" ]]; then
|
||||||
|
AWG_PROFILES_EXPLICIT=1
|
||||||
umask 077
|
umask 077
|
||||||
printf '%s\n' "${AWG_PROFILES}" >"${AWG_PROFILE_SNAPSHOT}" 2>/dev/null || true
|
printf '%s\n' "${AWG_PROFILES}" >"${AWG_PROFILE_SNAPSHOT}" 2>/dev/null || true
|
||||||
elif [[ -n "${PREV_CONTAINER_ENV}" ]]; then
|
elif [[ -n "${PREV_CONTAINER_ENV}" ]]; then
|
||||||
@@ -159,24 +161,21 @@ if [[ -z "${AWG_PROFILES:-}" ]] && [[ -f "${AWG_PROFILE_SNAPSHOT}" ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Авто-определение единственного контейнера amnezia-awg* (например amnezia-awg2 —
|
__awg_names="$(docker ps --format '{{.Names}}' 2>/dev/null | awk '/^amnezia-awg/ { print }' | sort || true)"
|
||||||
# дефолт Amnezia для AWG 2.0), если AWG_CONTAINER и AWG_PROFILES не заданы вручную.
|
__awg_multi_count="$(printf '%s\n' "${__awg_names}" | sed '/^$/d' | wc -l | tr -d '[:space:]')"
|
||||||
if [[ -z "${AWG_CONTAINER:-}" ]] && [[ -z "${AWG_PROFILES:-}" ]]; then
|
__profile_container_count=0
|
||||||
__awg_names="$(docker ps --format '{{.Names}}' 2>/dev/null | grep -E '^amnezia-awg' || true)"
|
if [[ -n "${AWG_PROFILES:-}" ]]; then
|
||||||
__awg_names_count="$(printf '%s\n' "${__awg_names}" | grep -c . || true)"
|
__profile_container_count="$(printf '%s' "${AWG_PROFILES}" | grep -o '"container"' | wc -l | tr -d '[:space:]' || true)"
|
||||||
if [[ "${__awg_names_count}" == "1" ]]; then
|
|
||||||
AWG_CONTAINER="$(printf '%s\n' "${__awg_names}" | head -n1)"
|
|
||||||
echo "→ AWG_CONTAINER авто-определён: ${AWG_CONTAINER}"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${AWG_PROFILES:-}" ]]; then
|
if [[ "${__awg_multi_count:-0}" =~ ^[0-9]+$ ]] && [[ "${__awg_multi_count}" -eq 1 ]] && [[ -z "${AWG_CONTAINER:-}" ]] && [[ -z "${AWG_PROFILES:-}" ]]; then
|
||||||
__awg_names="$(docker ps --format '{{.Names}}' 2>/dev/null | awk '/^amnezia-awg/ { print }' | sort || true)"
|
AWG_CONTAINER="$(printf '%s\n' "${__awg_names}" | sed '/^$/d' | head -n1)"
|
||||||
__awg_multi_count="$(printf '%s\n' "${__awg_names}" | sed '/^$/d' | wc -l | tr -d '[:space:]')"
|
echo "→ AWG_CONTAINER авто-выбран: ${AWG_CONTAINER}"
|
||||||
if [[ "${__awg_multi_count:-0}" =~ ^[0-9]+$ ]] && [[ "${__awg_multi_count}" -eq 1 ]] && [[ -z "${AWG_CONTAINER:-}" ]]; then
|
elif [[ "${__awg_multi_count:-0}" =~ ^[0-9]+$ ]] && [[ "${__awg_multi_count}" -gt 1 ]]; then
|
||||||
AWG_CONTAINER="$(printf '%s\n' "${__awg_names}" | sed '/^$/d' | head -n1)"
|
if [[ -z "${AWG_PROFILES:-}" || ( "${AWG_PROFILES_EXPLICIT}" == "0" && "${__profile_container_count:-0}" -lt 2 ) ]]; then
|
||||||
echo "→ AWG_CONTAINER авто-выбран: ${AWG_CONTAINER}"
|
if [[ -n "${AWG_PROFILES:-}" && "${__profile_container_count:-0}" -lt 2 ]]; then
|
||||||
elif [[ "${__awg_multi_count:-0}" =~ ^[0-9]+$ ]] && [[ "${__awg_multi_count}" -gt 1 ]]; then
|
echo "→ Найден старый одиночный AWG_PROFILES, но контейнеров amnezia-awg*: ${__awg_multi_count}. Пересобираю профили автоматически."
|
||||||
|
fi
|
||||||
__awg_profiles="["
|
__awg_profiles="["
|
||||||
__sep=""
|
__sep=""
|
||||||
while IFS= read -r __awg_name; do
|
while IFS= read -r __awg_name; do
|
||||||
|
|||||||
Reference in New Issue
Block a user