Commit Graph

43 Commits

Author SHA1 Message Date
Андрей Бобырев
4c1c82afec stable 1.2.8: scannable QR (ECC L + native size)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v1.2.8
2026-05-31 15:21:38 +03:00
Андрей Бобырев
0f98c074c8 docs: add full server uninstall section + link
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:11:06 +03:00
Андрей Бобырев
286142bd7a docs: APK downloaded via in-panel button (beta/dev), drop manual .apk placement note
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:07:47 +03:00
Андрей Бобырев
cf4b5f79b5 docs: CHANGELOG + troubleshooting (handshake/aarch64/phobos-import/uninstall) + update steps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:06:00 +03:00
Андрей Бобырев
5f97c6c6d7 feat: server uninstall.sh (full removal: panel, obfuscator, wg0, nginx, cron, iptables, dirs)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 14:59:49 +03:00
Андрей Бобырев
14bb6ae589 stable 1.2.7: phobos:// pad missing fields with '= none' (PhobosWG import fix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v1.2.7
2026-05-31 14:57:21 +03:00
Андрей Бобырев
51712310f6 fix: force OBFUSCATOR_PORT from OBFUSCATOR_PORTS[0] (override lib-core 51821 default)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 13:56:01 +03:00
Андрей Бобырев
6ec1782d8b fix(stable): client obfuscator targets real listening port (OBFUSCATOR_PORTS[0])
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 13:53:37 +03:00
Андрей Бобырев
e61ec09b18 fix: find -type f for wg-obfuscator binary in archive (tar unpacks to dir)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 12:26:40 +03:00
Андрей Бобырев
ed3071a971 bump stable to 1.2.6 (aarch64 router binary fix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v1.2.6
2026-05-31 12:24:35 +03:00
Андрей Бобырев
db4cab7a38 fix(stable): fetch router-arch binaries from ClusterM (aarch64, mipsel, armv7)
Keenetic routers are aarch64 but Ground-Zerro only ships x86_64. Installer
now copies all Ground-Zerro binaries + fetches missing arm64/mipsel/armv7
from ClusterM/wg-obfuscator latest release so action_package includes the
right binary for every router architecture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 12:24:35 +03:00
Андрей Бобырев
9f402be886 fix(stable): api.py in managed_files (port from dev)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 02:48:35 +03:00
Андрей Бобырев
8971565e6e fix: add server/api.py to managed_files (phobos-update now deploys agent)
The secondary agent api.py was not included in the update manifest, so
phobos-update left stale api.py on the server after channel switches.
Adding it ensures bandwidth-aware /api/health reaches secondaries on update.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 02:48:35 +03:00
Андрей Бобырев
b6525bc0ae stable 1.2.5: token field + channel buttons in version card
Ports the channel UI to stable so users who installed the open stable
version can paste their subscriber token (save_token) and switch to
beta/dev straight from Настройки → Версия и обновления. Adds
gh_token_present/save_gh_token helpers and stable/beta/dev quick buttons.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v1.2.5
2026-05-31 01:57:19 +03:00
Андрей Бобырев
d072c8227f feat: private dev/beta channels via subscriber token (repo split)
Closed channels (beta, dev) now live in a separate PRIVATE repository
andrey271192/PCA_Phobos-dev. Access is gated by a read-only subscriber
GH_TOKEN (distributed via Boosty) instead of a shared hash key — the
token both authenticates the private raw fetch AND acts as the gate, so
there is a single secret and the code is genuinely hidden (public repo
holds stable/main only).

install.sh: CHANNEL=beta|dev -> private repo, requires GH_TOKEN, persists
it to $PANEL_DIR/.gh_token + writes .channel. stable stays public/no-token.
update.sh: per-ref repo routing (repo_for), gh_curl injects the token for
private channels, token read from env or saved .gh_token, --check/--versions
reflect public vs private, stable path unchanged and tokenless.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 01:12:32 +03:00
Андрей Бобырев
7b941dc532 docs: README channels — stable open, beta/dev key-gated (Boosty)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 00:59:45 +03:00
Андрей Бобырев
8c1654ecaa feat: 3-channel model (stable open / beta + dev key-gated)
Channels:
  stable -> branch main  (open, no key)
  beta   -> branch beta  (release candidate, key-gated)
  dev    -> branch dev    (active development, key-gated)

beta and dev require PHOBOS_KEY (subscriber key distributed via Boosty);
only the sha256 hash is embedded in install.sh / update.sh. stable stays
open. install.sh honours CHANNEL=stable|beta|dev; phobos-update accepts
stable|beta|dev|<tag> and gates the closed channels. --check now lists all
three channels with a [закрыт ключом] marker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 00:58:06 +03:00
phobos
dc83d90a35 v1.2.4: install stable by default; beta opt-in via CHANNEL=beta (documented) v1.2.4 2026-05-31 00:38:50 +03:00
phobos
e0ea54e83a v1.2.3: debounce server DOWN alerts (3 cycles + retry) fix flapping; update.sh aborts on missing version + --check/--versions + beta channel; panel Check button v1.2.3 2026-05-30 23:52:47 +03:00
phobos
628973374e v1.2.2: contact Telegram -> group @PCAdministration (README + panel footer) v1.2.2 2026-05-30 18:24:24 +03:00
phobos
041a533457 v1.2.1: fix bot button parsing (no arg from button text); bot create sends QR photo + phobos:// link; delete shows inline client picker v1.2.1 2026-05-30 15:14:58 +03:00
phobos
48ae0c2fd8 v1.2.0: Telegram bot buttons (reply keyboard + inline delete + status) v1.2.0 2026-05-30 15:09:26 +03:00
phobos
73af670f59 v1.1.0: per-client notification toggle (bell) + Telegram bot (/add /del /list clients) v1.1.0 2026-05-30 15:00:51 +03:00
phobos
c48d727f6c Phone pages: download buttons — Android PhobosWG APK (self-hosted /app/), iOS WireGuard App Store; installer nginx /app/ 2026-05-30 14:41:01 +03:00
phobos
b37b4cc1a3 README: public docs — human description, features, screenshots section, update/rollback, troubleshooting table 2026-05-30 14:33:22 +03:00
phobos
9e1144d310 Versioning: VERSION file, phobos-update (update/rollback), panel version+update UI v1.0.0 2026-05-30 14:29:50 +03:00
phobos
54867442ae Phone clients: panel generates phobos:// link + QR (Android) and plain WG + QR (iOS); installer qrcode dep + ALLOW_PLAIN_WG option 2026-05-30 14:25:35 +03:00
phobos
87882b0156 Footer: detailed authorship (who made what + whose support); new Telegram link 2026-05-30 14:09:59 +03:00
phobos
95eb17a84a Support links: add Ozon (author) + WireGuard Easy/Emile Nijssen credit; full footer chain 2026-05-30 14:07:24 +03:00
phobos
01c9baab0e Add GitHub Sponsor button (FUNDING.yml -> Boosty) 2026-05-30 14:02:35 +03:00
phobos
6752e61b1e Add support links (author + upstream Phobos/wg-obfuscator) to README + panel footer 2026-05-30 14:01:48 +03:00
phobos
d5313d3572 secondary-setup: fetch agent api.py (with /api/router-config); README turnkey 2026-05-30 13:47:14 +03:00
phobos
8113fb190a install.sh: set -e safe watchdog cron install 2026-05-30 13:44:33 +03:00
phobos
dc09185afd install.sh: optional GH_TOKEN for private-repo fetch 2026-05-30 13:41:46 +03:00
phobos
fff45ca342 turnkey installer: full primary stack one-command + session improvements
- install.sh: rewritten as self-contained turnkey primary installer (deps,
  wg-obfuscator from Ground-Zerro, wg0, obfuscator services, Phobos repo +
  PCA overlay patches, web panel, nginx, router watchdog).
- app.py: current panel (RU/EN, tunnel-pull config endpoint, fan-out, load-aware
  rebalance, online-anywhere status, '?' help).
- overlay/: patched onboarding scripts (phobos-client.sh 403 fix,
  install-router.sh.template tunnel-pull+cron+client_id, router-configure-wireguard
  public WG, phobos-pull.sh tunnel-first).
- server/: phobos-health.sh (self-heal+apply-server), phobos-pull.sh,
  phobos-router-watchdog.py, api.py (agent + /api/router-config).
2026-05-30 13:39:49 +03:00
Андрей Бобырев
5badb15d75 feat: safety checks + backup + uninstall for secondary-setup.sh
Pre-flight checks before installation:
- Detect existing WireGuard, Phobos clients, tokens, server.env
- Check port conflicts (obfuscator ports, 51820, 8444)
- Check running conflicting services
- Pause with warning count if issues found

Safety during install:
- Auto-backup existing configs to /opt/Phobos/backup/TIMESTAMP/
- Preserve existing wg0.conf if found (reuse keys)
- Skip obfuscator binary download if already installed

Clean uninstall script:
- /opt/Phobos/server/phobos-secondary-uninstall.sh
- Stops all services, removes configs and systemd units
- Preserves backup directory
- Removes iptables rules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-29 00:03:19 +03:00
Андрей Бобырев
ba5a9deeb6 feat: random 5-digit port for panel on install
Panel now gets a random port (10000-59999) instead of fixed 8443.
Harder to find via port scanning, avoids conflicts with existing services.
Port saved to /opt/phobos-panel/.port for reference.
Override with PANEL_PORT=xxxxx env var.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:53:15 +03:00
Андрей Бобырев
a9f175d564 ui: add descriptions to servers/labels pages, improve delete buttons
- Servers page: descriptions for API key, VPN servers table, secondary setup
- Labels page: explain what labels do and where they appear
- Delete buttons: show "Удалить" text instead of just ✕, add confirm dialogs
- Fix duplicate nav link on servers page

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:46:25 +03:00
Андрей Бобырев
0e2a194f43 chore: update obfuscator ports to stealth values (2083, 5443, 993)
Ports 51821-51823 look like WireGuard to port scanners.
New ports mimic cPanel/HTTPS/IMAPS — less suspicious.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:44:17 +03:00
Андрей Бобырев
4f1fca5222 feat: multi-server failover, health monitor, port hopping
- client/phobos-health.sh: router-side health monitor + auto-heal
  - Cron every 60s, checks WG handshake age
  - Auto-restart obfuscator (3min), WireGuard (5min)
  - Port hopping (10min), server failover (15min)
  - Auto-return to primary when recovered
- client/failover.conf.example: multi-server config template
- server/secondary-setup.sh: one-command secondary server deploy
  - WG + multi-port obfuscator + mini-API on :8444
  - Auto-registers with main server
- Panel: new "Серверы" page
  - Add/remove secondary servers
  - Health check, peer sync, fetch info
  - API key management
  - Secondary server install command

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:28:34 +03:00
Андрей Бобырев
c35f5464ab fix: show real install tokens, use wget for Keenetic routers
- Settings page reads /opt/Phobos/tokens/tokens.json for real install commands
- Uses wget (available on BusyBox/Keenetic) instead of curl in displayed commands
- Shows client name and token expiry for each install command

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:15:41 +03:00
Андрей Бобырев
afe5c39649 fix: remove personal donation links and author data from panel and README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:12:45 +03:00
Андрей Бобырев
e11451b984 feat: PCA Phobos — web panel for obfuscated WireGuard VPN
Flask web panel for Phobos (wg-obfuscator + WireGuard):
- Active sessions monitoring (wg show)
- Client management (add/remove via phobos-client.sh)
- Labels by Real IP
- Subscription expiry with auto-kick
- Telegram notifications (connect/disconnect/expiry)
- One-command installer
- Dark theme UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 23:06:08 +03:00