mirror of
https://github.com/andrey271192/amnezia_web-PRO.git
synced 2026-09-20 14:42:00 +00:00
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.
This commit is contained in:
@@ -183,6 +183,34 @@
|
||||
</div>
|
||||
</details>
|
||||
|
||||
<details class="panel-fold" id="direct-panel" open>
|
||||
<summary class="fold-summary">
|
||||
<span class="fold-arrow" aria-hidden="true"></span>
|
||||
<span class="fold-titles">
|
||||
<span class="fold-h">Новый клиент</span>
|
||||
<span class="muted fold-meta">Прямое подключение к этому серверу — Endpoint = публичный IP этого VPS</span>
|
||||
</span>
|
||||
</summary>
|
||||
<div class="panel-fold-body">
|
||||
<div class="muted cascade-guide">
|
||||
<p class="cascade-intro">
|
||||
<strong>Обычное подключение.</strong> Создаёт нового клиента AmneziaWG и сразу скачивает файл
|
||||
<code class="inline">.conf</code>, где <strong>Endpoint указывает на этот сервер напрямую</strong>.
|
||||
Импортируйте файл в приложение Amnezia на телефоне или ПК. IP в туннеле подберётся автоматически.
|
||||
</p>
|
||||
</div>
|
||||
<form id="direct-form" class="cascade-form">
|
||||
<label for="direct-name">Имя клиента</label>
|
||||
<input id="direct-name" type="text" placeholder="Например iPhone Андрей" autocomplete="off">
|
||||
|
||||
<label for="direct-tunnel-ip">IP в VPN-туннеле (необязательно)</label>
|
||||
<input id="direct-tunnel-ip" type="text" placeholder="Пусто — подберём свободный в подсети" autocomplete="off">
|
||||
|
||||
<button type="submit" class="btn primary">Создать и скачать .conf</button>
|
||||
</form>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
<details class="panel-fold cascade-panel" id="cascade-panel" open>
|
||||
<summary class="fold-summary">
|
||||
<span class="fold-arrow" aria-hidden="true"></span>
|
||||
|
||||
Reference in New Issue
Block a user