mirror of
https://github.com/andrey271192/PCA_Phobos.git
synced 2026-09-20 11:55:32 +00:00
Phone pages: download buttons — Android PhobosWG APK (self-hosted /app/), iOS WireGuard App Store; installer nginx /app/
This commit is contained in:
@@ -93,6 +93,10 @@ bash <(curl -fsSL https://raw.githubusercontent.com/andrey271192/PCA_Phobos/main
|
|||||||
|
|
||||||
> Для каждого устройства создавай **отдельного клиента** (свой ключ и IP). Один конфиг на двух устройствах = конфликт ключей.
|
> Для каждого устройства создавай **отдельного клиента** (свой ключ и IP). Один конфиг на двух устройствах = конфликт ключей.
|
||||||
|
|
||||||
|
**Приложения:**
|
||||||
|
- **Android (PhobosWG):** автор пока не публикует APK официально. Положи `.apk` на сервер в `/opt/Phobos/www/app/PhobosWG.apk` — панель сама покажет кнопку «Скачать приложение PhobosWG» на странице Android-клиента (раздаётся по `http://<сервер>/app/PhobosWG.apk`).
|
||||||
|
- **iPhone (iOS):** официальный [WireGuard из App Store](https://apps.apple.com/app/wireguard/id1441195209) — кнопка есть на странице iOS-клиента.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Обновление и откат
|
## Обновление и откат
|
||||||
|
|||||||
10
app.py
10
app.py
@@ -1307,11 +1307,17 @@ def client_phone(cid, mode):
|
|||||||
qr = qr_datauri(link if (mode == "android" and link) else conf)
|
qr = qr_datauri(link if (mode == "android" and link) else conf)
|
||||||
if mode == "android":
|
if mode == "android":
|
||||||
title = tr("Android — PhobosWG (с обфускацией)", "Android — PhobosWG (obfuscated)")
|
title = tr("Android — PhobosWG (с обфускацией)", "Android — PhobosWG (obfuscated)")
|
||||||
extra = (f'<p>{tr("phobos:// ссылка — импорт в PhobosWG:", "phobos:// link — import into PhobosWG:")}</p>'
|
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>')
|
||||||
|
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>')
|
f'<textarea readonly onclick="this.select()" style="width:100%;height:90px;font-size:.75em">{link}</textarea>')
|
||||||
else:
|
else:
|
||||||
title = tr("iPhone / iOS WireGuard (без обфускации)", "iPhone / iOS WireGuard (plain, no obfuscation)")
|
title = tr("iPhone / iOS WireGuard (без обфускации)", "iPhone / iOS WireGuard (plain, no obfuscation)")
|
||||||
extra = (f'<p style="color:#fcd34d">{tr("⚠ Обычный WireGuard без маскировки (Endpoint → :51820). На сервере должен быть открыт порт 51820.", "⚠ Plain WireGuard, no obfuscation (Endpoint → :51820). Port 51820 must be open on the server.")}</p>')
|
extra = (f'<p><a href="https://apps.apple.com/app/wireguard/id1441195209" target="_blank" rel="noopener" class="btn btn-primary" style="background:#0ea5e9">📥 {tr("WireGuard в App Store","WireGuard on the App Store")}</a></p>'
|
||||||
|
f'<p style="color:#fcd34d">{tr("⚠ Обычный WireGuard без маскировки (Endpoint → :51820). На сервере должен быть открыт порт 51820 (ALLOW_PLAIN_WG=1).", "⚠ Plain WireGuard, no obfuscation (Endpoint → :51820). Port 51820 must be open on the server (ALLOW_PLAIN_WG=1).")}</p>')
|
||||||
html = f"""
|
html = f"""
|
||||||
<div class="container">
|
<div class="container">
|
||||||
{nav('clients')}
|
{nav('clients')}
|
||||||
|
|||||||
@@ -221,11 +221,12 @@ server {
|
|||||||
listen [::]:80 default_server;
|
listen [::]:80 default_server;
|
||||||
location /init/ { alias /opt/Phobos/www/init/; default_type application/x-sh; }
|
location /init/ { alias /opt/Phobos/www/init/; default_type application/x-sh; }
|
||||||
location /packages/ { alias /opt/Phobos/www/packages/; default_type application/octet-stream; }
|
location /packages/ { alias /opt/Phobos/www/packages/; default_type application/octet-stream; }
|
||||||
|
location /app/ { alias /opt/Phobos/www/app/; default_type application/octet-stream; }
|
||||||
location / { return 404; }
|
location / { return 404; }
|
||||||
}
|
}
|
||||||
NGINX
|
NGINX
|
||||||
ln -sf /etc/nginx/sites-available/phobos /etc/nginx/sites-enabled/phobos
|
ln -sf /etc/nginx/sites-available/phobos /etc/nginx/sites-enabled/phobos
|
||||||
chmod 755 /opt/Phobos/www /opt/Phobos/www/init /opt/Phobos/www/packages
|
mkdir -p /opt/Phobos/www/app; chmod 755 /opt/Phobos/www /opt/Phobos/www/init /opt/Phobos/www/packages /opt/Phobos/www/app
|
||||||
nginx -t >/dev/null 2>&1 && systemctl enable nginx -q 2>/dev/null && systemctl restart nginx || echo " WARN: nginx config test failed"
|
nginx -t >/dev/null 2>&1 && systemctl enable nginx -q 2>/dev/null && systemctl restart nginx || echo " WARN: nginx config test failed"
|
||||||
|
|
||||||
# ── 9. router watchdog (auto reboot-recovery) ──
|
# ── 9. router watchdog (auto reboot-recovery) ──
|
||||||
|
|||||||
Reference in New Issue
Block a user