Add node mode with SSH auto-install and Remnawave-style manual deploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,6 +33,37 @@ docker compose up -d --build
|
||||
|
||||
---
|
||||
|
||||
## Режим ноды (как Remnawave, но проще)
|
||||
|
||||
Панель **не** гоняет Xray сама — VPN поднимается на отдельных серверах-нодах (как [Remnawave Node](https://docs.rw/install/remnawave-node)).
|
||||
|
||||
### Чем удобнее
|
||||
|
||||
| Remnawave Node | VPN Panel |
|
||||
|---|---|
|
||||
| Docker вручную + вставить compose | **Авто по SSH**: host/user/пароль (или ключ) → панель ставит Docker + агент |
|
||||
| Или вручную | **Ручной режим** — тот же compose, если SSH недоступен |
|
||||
|
||||
### Как добавить ноду
|
||||
|
||||
1. Админка → **Ноды** → **Добавить ноду**
|
||||
2. Укажите имя, IP/хост, SSH (`root` + пароль или ключ), порт API ноды (по умолчанию `2222`)
|
||||
3. Режим:
|
||||
- **Авто по SSH** — мастер подключается, ставит Docker (если нет), заливает бинарник `vpn-node`, поднимает `docker compose`
|
||||
- **Вручную** — скопируйте `docker-compose.yml` и бинарник `/app/bin/vpn-node` на сервер
|
||||
4. На firewall ноды откройте `NODE_PORT` **только** для IP панели
|
||||
5. Нажмите **Проверить online**
|
||||
|
||||
Агент слушает `NODE_PORT`, авторизация: `Authorization: Bearer <SECRET_KEY>`.
|
||||
|
||||
Эндпоинты агента: `GET /health`, `GET|POST /api/v1/config`, `GET /api/v1/status`.
|
||||
|
||||
SSH-секреты в БД шифруются AES-GCM ключом от `APP_SECRET`.
|
||||
|
||||
> Панель в Docker должна иметь сетевой доступ до SSH (22) и NODE_PORT ноды. На VPS/Dokploy это обычно ок.
|
||||
|
||||
---
|
||||
|
||||
## Reverse proxy + SSL (Let's Encrypt)
|
||||
|
||||
Примеры лежат в `deploy/`. Сеть Docker: `vpn-panel-net`.
|
||||
@@ -193,5 +224,6 @@ go run ./cmd/server
|
||||
- `/` — главная
|
||||
- `/login` — вход
|
||||
- `/admin` — дашборд
|
||||
- `/admin/nodes` — ноды
|
||||
- `/admin/protocols` — протоколы
|
||||
- `/health` — healthcheck
|
||||
|
||||
Reference in New Issue
Block a user