Commit Graph

21 Commits

Author SHA1 Message Date
Андрей Бобырев
9d751922fb feat(panel): auto tg link host + theme switcher
mtproto status now derives advertised host from request when MTPRO_PUBLIC_HOST/CLIENT_CONFIG_ENDPOINT are unset, so tg:// always works with the host:port the admin uses. Adds copy button. Adds theme selector (auto/light/dark) persisted in localStorage with prefers-color-scheme fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 04:03:00 +03:00
Андрей Бобырев
bb007ad644 feat(panel): donor strip + Telegram sponsor in footer
Public GET /api/panel/footer with env-backed URLs (defaults: Boosty + t.me sponsor). install.sh forwards PANEL_FOOTER_*. Promo only in admin SPA, not nginx landing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 03:57:36 +03:00
Андрей Бобырев
eaee4d78f7 fix(mtproto): harden panel + deploy visibility
- Rename snapshot to snap; bust app.js cache (?v).\n- /health returns version from package.json; startup log prints v.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 03:41:49 +03:00
Андрей Бобырев
6c2698c106 fix(mtproto-ui): restore status fetch, trim promo footer
ReferenceError fixed by awaiting /api/mtproto/status before using snap. Footer: GitHub-only; dropped Boosty/Ozon/Telegram. Removed advertiseHint from install JSON (hint remains on status).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 03:32:45 +03:00
Андрей Бобырев
ecf754c7da feat(community): manage Telegram MTProto proxy from FREE UI
Docker pull/run/remove/restart via host socket (no SSH), optional
secrets and tg:// links when MTPRO_PUBLIC_HOST or CLIENT_CONFIG_ENDPOINT set.
Expose MTPRO_* and UI_HIDE_MTPROTO through install.sh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 03:27:50 +03:00
Андрей Бобырев
485fea7ef7 fix(ui): hide cascade in FREE even when state fetch fails
/api/protocols now returns uiHidden alongside edition; client
applies both so cascade/warp stay hidden if /api/clients errors
out (e.g. missing clientsTable in tunnel container).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 03:11:18 +03:00
Андрей Бобырев
11c753c010 feat(community): probe AWG conf/clients paths in autodetect
Auto AWG_PROFILES now docker-execs each amnezia-awg* container to
pick wg0.conf vs awg0.conf, fallback find, clientsTable siblings.
Fixes legacy layouts where awg0.conf does not exist.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 02:54:56 +03:00
Андрей Бобырев
9e17b05444 feat(community): auto-detect AWG_PROFILES for PRO install
Before spawning helper, scan running amnezia-awg* containers and
build AWG_PROFILES JSON labeled by UDP port; pass via env so PRO
install.sh writes it into new panel and /root snapshot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 02:41:02 +03:00
Андрей Бобырев
d902f78667 fix(community): install openssl and tar into helper
PRO install.sh calls openssl (line 102) for initial secrets and
tar to unpack the release; Alpine docker:*-cli ships neither.
Add them to apk/apt step plus early presence check for clearer log.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 02:33:21 +03:00
Андрей Бобырев
ab40786dee fix(community): mount real host data dir into helper
Helper used DATA_DIR (in-container path) for bind-mount source.
Daemon created phantom /data on host, log + staging went there
instead of /opt/amnezia-admin-data. Resolve HOST_DATA_DIR via env
or docker inspect; place staging under DATA_DIR so single mount
exposes both log and install.sh to helper.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 02:30:02 +03:00
Андрей Бобырев
da925022cb fix(community): write install log footer inside helper
finalize() runs in killed FREE panel misses footer; helper survives.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 02:16:46 +03:00
Андрей Бобырев
0213003ff9 fix(community): PRO helper logs full prelude; safe GH token env; prelude ;
Redirect helper stdout/err to install log; pass PAT via spawn env (-e VAR),
fix prelude chaining; clearer missing bash/curl exit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:44:17 +03:00
Андрей Бобырев
9f5aa3929f fix(community): install bash in docker helper for PRO install.sh shebang
docker: 26-cli image lacks bash; exec bash exited immediately (code≈2).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:40:39 +03:00
Андрей Бобырев
08fb053d9f fix(community): install curl in docker helper before private install.sh
Alpine docker:26-cli lacked curl causing PRO install to fail/tar garbage;
also sweep containers matching name substring amnezia-admin-pro (compose IDs).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:20:05 +03:00
Андрей Бобырев
6c213ef49e feat(community): live install log panel in FREE UI + install-log API
Poll community-install-last.log after «Установить PRO» with GET
/api/community/install-log; preserve log DOM across banner redraws.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:17:47 +03:00
Андрей Бобырев
902bd99395 fix(community): PRO install from UI uses docker-cli helper to free :8080
Run install.sh in a disposable docker:26-cli container after docker rm
FREE/landing/stale PRO; keeps working after API response. Legacy in-panel
bash retained when COMMUNITY_DISABLE_DOCKER_CLI_HELPER=1. Persist related
env vars in install.sh from previous container.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:14:18 +03:00
Андрей Бобырев
65e10ae625 fix(awg): infer wg0 iface from wg0.conf; chmod600 before syncconf
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 01:09:09 +03:00
Андрей Бобырев
d29117176c feat(community): allow deleting clients in FREE tier
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 00:59:12 +03:00
Андрей Бобырев
9d54c7c8b8 feat(community): optional PRO install via GitHub token in UI
- POST /api/community/run-private-install fetches private install.sh and runs bash detached (202 Accepted)
- Gated by ALLOW_COMMUNITY_GITHUB_ACTIVATION + AMNEZIA_EDITION=community + admin session
- Log appended to /data/community-install-last.log; install bash bundled in Dockerfile

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 00:50:21 +03:00
Андрей Бобырев
9c28c022ac chore: default Boosty PRO subscription URL for FREE tier
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 22:38:30 +03:00
Андрей Бобырев
7f5fb921e6 feat: open community panel (read-only clients only)
Ship full install stack with .amnezia-panel-edition=community; docs and
footer point to Boosty/PRO. Managing peers, export, cascade and WARP
require private PRO build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 21:53:15 +03:00