Add /config trial VPN generation for users (1 day default)

Users get Remnawave subscription via /config or inline button; TRIAL_USER_DAYS and panel lookup by Telegram ID.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
tgvpn
2026-05-21 01:29:55 +03:00
parent 30866bb244
commit cbb2133991
9 changed files with 278 additions and 24 deletions
+10 -2
View File
@@ -139,7 +139,7 @@ docker compose logs --tail=30 bot
docker compose logs --tail=20 db
```
В Telegram: `/start`, от админа — `/admin squads`, `/admin user`.
В Telegram: `/start` → кнопка «Получить конфиг» или `/config` (trial на `TRIAL_USER_DAYS`, по умолчанию 1 день). От админа — `/admin squads`, `/admin user`.
### 5. Остановка
@@ -551,11 +551,19 @@ go build -o bot .
| `CADDY_AUTH_API_TOKEN` | нет | `X-Api-Key`, если включён Caddy with security (как в оф. `.env` subscription-page) |
| `REMNAWAVE_SUBSCRIPTION_URL` | нет | Опционально: домен Subscription Page (`sub.*`), отдельная проверка |
| `DATABASE_URL` | да | PostgreSQL, в compose: `postgres://tgvpn:tgvpn@db:5432/tgvpn?sslmode=disable` |
| `DEFAULT_USER_DAYS` | нет | Срок подписки по умолчанию (30) |
| `TRIAL_USER_DAYS` | нет | Срок trial-конфига для `/config` (по умолчанию 1) |
| `DEFAULT_USER_DAYS` | нет | Срок при создании админом `/admin user` (по умолчанию 1) |
| `DEFAULT_EXTERNAL_SQUAD_UUID` | нет | External squad по умолчанию при быстром создании |
| `DEFAULT_INTERNAL_SQUAD_UUIDS` | нет | Internal squads через запятую |
| `BOT_DEBUG` | нет | `true` — подробные логи Telegram API (только для отладки) |
### Команды для пользователей
- `/start` — приветствие и кнопка получения конфига
- `/config` — создать пользователя в Remnawave на `TRIAL_USER_DAYS` (если активная подписка уже есть — вернёт существующую ссылку)
Нужны `DEFAULT_EXTERNAL_SQUAD_UUID` и `DEFAULT_INTERNAL_SQUAD_UUIDS` — те же сквады, что для быстрого `/admin user`.
### Админ-меню в боте
Только пользователь с `TELEGRAM_ADMIN_ID`: