From 38ff3ae3ddad3a9782538de6860b9fdde3fda2ac Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 31 May 2026 16:13:20 +0300 Subject: [PATCH] Add stable APK download button --- CHANGELOG.md | 1 + README.md | 2 +- app.py | 14 ++++++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f11f78..90d0cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,7 @@ phobos-update beta # или: phobos-update dev | Версия | Проблема | Решение | |--------|----------|---------| | 1.2.7 / 1.3.x | PhobosWG: «невозможно импортировать туннель» | `phobos://` дополняется `= none` для всех обязательных полей (`PresharedKey`) по спеке формата | +| 1.2.8 / 1.3.x | Stable не показывал кнопку скачивания APK без локального файла | кнопка **PhobosWG (APK)** всегда доступна на Android-странице; `/download/apk` ведет на public stable release | | 1.2.6 / 1.3.x | Роутер aarch64: «бинарник не найден в архиве» | авто-загрузка aarch64/mipsel/armv7 из ClusterM releases | | (внутр.) | Клиент не подключается, «НЕТ СОЕДИНЕНИЯ», handshake не встаёт | клиентский обфускатор целился в порт 51821 (никто не слушал); теперь берёт первый из `OBFUSCATOR_PORTS` (2083) | | (внутр.) | агент secondary не обновлялся через `phobos-update` | `server/api.py` добавлен в managed_files | diff --git a/README.md b/README.md index 1903984..3d8dfca 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main > Для каждого устройства создавай **отдельного клиента** (свой ключ и IP). Один конфиг на двух устройствах = конфликт ключей. **Приложения:** -- **Android (PhobosWG):** на странице Android-клиента в панели есть кнопка **«Скачать приложение PhobosWG (APK)»** — приложение скачивается автоматически (доступно в каналах beta/dev). Установи APK, затем импортируй `phobos://`-ссылку или QR. +- **Android (PhobosWG):** на странице Android-клиента в панели есть кнопка **«Скачать приложение PhobosWG (APK)»** — приложение скачивается автоматически из public stable release (доступно всем каналам: stable/beta/dev). Установи APK, затем импортируй `phobos://`-ссылку или QR. - **iPhone (iOS):** официальный [WireGuard из App Store](https://apps.apple.com/app/wireguard/id1441195209) — кнопка есть на странице iOS-клиента. --- diff --git a/app.py b/app.py index ae35af5..a8fceca 100644 --- a/app.py +++ b/app.py @@ -1667,6 +1667,13 @@ def sync_peer_to_all_servers(public_key, allowed_ips, action="add"): sync_peer_to_server(srv, public_key, allowed_ips, action) +@app.route("/download/apk") +@auth_required +def download_apk(): + """Download public stable PhobosWG APK.""" + return redirect("https://github.com/andrey271192/PCA_Phobos/releases/latest/download/PhobosWG.apk") + + @app.route("/client//phone/") @auth_required def client_phone(cid, mode): @@ -1678,10 +1685,9 @@ def client_phone(cid, mode): qr = qr_datauri(link if (mode == "android" and link) else conf) if mode == "android": title = tr("Android — PhobosWG (с обфускацией)", "Android — PhobosWG (obfuscated)") - apk_btn = "" - if os.path.exists("/opt/Phobos/www/app/PhobosWG.apk"): - apk_btn = (f'

📥 {tr("Скачать приложение PhobosWG (APK)","Download PhobosWG app (APK)")}

') + apk_btn = (f'

📥 {tr("Скачать приложение PhobosWG (APK)","Download PhobosWG app (APK)")}' + f'{tr("stable public release","stable public release")}

') extra = (apk_btn + f'

{tr("phobos:// ссылка — импорт в PhobosWG:", "phobos:// link — import into PhobosWG:")}

' f'')