Commit Graph

21 Commits

Author SHA1 Message Date
andrey271192
c49e7eea8d feat: direct client creation + auto-detect AWG container
Add "Новый клиент" (direct) flow alongside cascade:
- server.js: POST /api/clients/create — Endpoint = this server's
  public IP:ListenPort (CLIENT_CONFIG_ENDPOINT or request host),
  reuses the same key/peer/conf pipeline as create-cascade.
- public/index.html: "Новый клиент" panel with #direct-form
  (name + optional tunnel IP).
- public/app.js: downloadDirectConf() handler + form binding.

install.sh hardening so fresh installs work out of the box:
- Auto-detect a single amnezia-awg* container (e.g. amnezia-awg2,
  Amnezia AWG 2.0 default) -> AWG_CONTAINER, instead of the fixed
  "amnezia-awg" default that mismatched and blocked client ops.
- Auto-default CLIENT_CONFIG_ENDPOINT to the host primary IP so
  direct .conf exports get a correct Endpoint without manual env.

Fixes "cannot create users" on servers whose WG container is
named amnezia-awg2.
2026-06-16 19:30:11 +03:00
Андрей Бобырев
d21419cfdb fix: default awg container name 2026-06-06 14:46:37 +03:00
Андрей Бобырев
05e6d007e2 docs: make pro repo public install source 2026-06-06 14:16:56 +03:00
Андрей Бобырев
0e7a7df636 feat(mtproto): Telegram proxy panel and /api routes
- Docker telegrammessenger/proxy: install/restart/remove from UI
- GET/POST /api/mtproto/*, UI_HIDE_MTPROTO / UI_HIDE_SECTIONS=mtproto
- install.sh vars MTPRO_*; /health returns version; docs

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 04:39:19 +03:00
Андрей Бобырев
74163944c2 chore: align community default Boosty URL with PRO subscription link
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 22:38:30 +03:00
Андрей Бобырев
c454b9e701 feat: split community (read-only) vs PRO panel editions
Add AMNEZIA_EDITION=community with API/UI locks for client mutations,
export, cascade, WARP and host time sync; banner + Boosty CTA.
Install passes edition from AMNEZIA_EDITION env or .amnezia-panel-edition.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 21:51:24 +03:00
Андрей Бобырев
62f40f92fb feat(warp): host install/uninstall via panel SSH + clarify status
POST /api/warp/host-setup runs warp-amnezia.sh on VPS root SSH.
UI buttons when sshpass available; explain missing warp.conf status.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 20:18:23 +03:00
Андрей Бобырев
8f1d7a7c4a feat(ui): optional UI_HIDE_* panels; doc WARP free vs paid plans
Hide users/warp/cascade blocks via env; block warp/cascade APIs when hidden.
install.sh passes UI_HIDE_* and restores from previous container on upgrade.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 20:01:43 +03:00
Андрей Бобырев
50558aff63 docsfeat(warp): clarify optional install + add uninstall command
README/panel-guide/UI explain WARP is not required; document uninstall.
Add warp-amnezia.sh uninstall to strip warp conf, rules, and start.sh block.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 19:53:14 +03:00
Андрей Бобырев
aec8a2f89e fix: ASCII-safe export filenames and trim landing footer
Content-Disposition rejects non-ASCII in Node; sanitize export names.
Public landing keeps admin link only; donate links stay in admin UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 19:10:57 +03:00
Андрей Бобырев
f3aab6cc6e feat: cascade client — custom Endpoint + AWG_PROFILES hint
- POST /api/clients/create-cascade: genkeys, add peer, save last_config, download .conf
- Optional tunnel IP in VPN subnet; obfuscation from server [Interface] when present
- /api/protocols: singleProfile hint for missing instance selector
- UI: cascade form, profile banner; README cascade section

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 18:44:11 +03:00
Андрей Бобырев
227bb94627 fix: preserve AWG_PROFILES on reinstall; GET export URL + token
- install.sh: snapshot /root/amnezia-admin.awg-profiles.json + restore from old container
- GET /api/clients/export-config (+ profileId); optional EXPORT_CONFIG_SECRET
- UI: direct link, copy URL, hint when last_config missing

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 18:32:51 +03:00
Андрей Бобырев
75a3e56354 feat: export client .conf from last_config
Adds POST /api/clients/export-config, UI button when exportAvailable, CLIENT_* env for Endpoint/DNS in install.sh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 18:27:10 +03:00
Андрей Бобырев
ecb64b8b33 fix: ssh time sync — drop BatchMode blocking sshpass
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 18:13:03 +03:00
Андрей Бобырев
6f6fb5f9b9 feat: Cloudflare WARP routing for AmneziaWG
Web toggles per IPv4 peer; wgcf install script on host (no Telegram/QR).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 18:00:39 +03:00
Андрей Бобырев
40d236c228 fix(ui): separate server vs browser TZ; highlight sync from device
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 17:08:07 +03:00
Андрей Бобырев
dfae0d8256 feat(time): server TZ display; optional SSH host sync via root pw
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 16:44:01 +03:00
Андрей Бобырев
860a56dc5d feat: AWG profile switcher; scheduled tunnel disconnect
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 16:37:27 +03:00
Андрей Бобырев
1c22f89d5a feat(ui): show server and browser date/time in toolbar
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 16:14:27 +03:00
Андрей Бобырев
e93a7e9f60 docs: add upgrade steps; no-store cache for admin static
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 15:56:57 +03:00
Андрей Бобырев
ede0c66415 docs: publish install/uninstall scripts, README, FUNDING, support footer
Add curl-one-liner install with generated password file; uninstall flags for image/data/src; optional ALLOW_DEFAULT_PASSWORD; footer mirroring GitHub/Boosty/Telegram layout.

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