Repair broken HTML merge. Extend /api/panel/footer with PANEL_FOOTER_OZON_URL (default Ozon СБП) and labels in strip+footer.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
- 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>
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>
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>
/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>
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>
Keep FREE installer aligned with PRO: support api.github.com
tarball endpoint with bearer token; tolerate SHA-suffixed dir.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
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>
One env enables community + ALLOW_COMMUNITY_* and writes marker in DATA volume
for idempotent reinstalls without re-export.
Co-authored-by: Cursor <cursoragent@cursor.com>
pipefail aborted the script after download when inspect succeeded but port
mapping was unavailable (Stopped/Created).
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
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>
- Restore ALLOW_COMMUNITY_GITHUB_ACTIVATION and related vars from old amnezia-admin
- Pick free LANDING_PORT when host :80 is busy
- README: FAQ token field, 8080 vs PRO, landing port
Co-authored-by: Cursor <cursoragent@cursor.com>
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>