mirror of
https://github.com/andrey271192/PCA_Phobos.git
synced 2026-09-20 11:55:32 +00:00
Add stable APK download button
This commit is contained in:
@@ -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 |
|
||||
|
||||
@@ -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-клиента.
|
||||
|
||||
---
|
||||
|
||||
14
app.py
14
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/<cid>/phone/<mode>")
|
||||
@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'<p style="margin-top:6px"><a href="http://{SERVER_IP}/app/PhobosWG.apk" '
|
||||
f'class="btn btn-primary" style="background:#16a34a">📥 {tr("Скачать приложение PhobosWG (APK)","Download PhobosWG app (APK)")}</a></p>')
|
||||
apk_btn = (f'<p style="margin-top:6px"><a href="/download/apk" '
|
||||
f'class="btn btn-primary" style="background:#16a34a">📥 {tr("Скачать приложение PhobosWG (APK)","Download PhobosWG app (APK)")}</a>'
|
||||
f'<span style="font-size:.8em;color:#94a3b8;margin-left:8px">{tr("stable public release","stable public release")}</span></p>')
|
||||
extra = (apk_btn +
|
||||
f'<p>{tr("phobos:// ссылка — импорт в PhobosWG:", "phobos:// link — import into PhobosWG:")}</p>'
|
||||
f'<textarea readonly onclick="this.select()" style="width:100%;height:90px;font-size:.75em">{link}</textarea>')
|
||||
|
||||
Reference in New Issue
Block a user