Add admin menu and Remnawave panel integration

This commit is contained in:
tgvpn
2026-05-21 00:37:57 +03:00
parent 20872232b7
commit 1fb512163b
6 changed files with 524 additions and 37 deletions
+25 -4
View File
@@ -35,6 +35,10 @@ cp .env.example .env
```env
BOT_TOKEN=ваш_токен_от_BotFather
BOT_DEBUG=false
TELEGRAM_ADMIN_ID=123456789
REMNAWAVE_PANEL_NAME=Панель 1
REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=токен_из_панели
```
> **Важно:** файл `.env` не попадает в git и не копируется в образ. Compose передаёт переменные в контейнер при старте.
@@ -204,8 +208,20 @@ go build -o bot .
| Переменная | Обязательно | Описание |
|--------------|-------------|----------|
| `BOT_TOKEN` | да | Токен от @BotFather |
| `BOT_DEBUG` | нет | `true` — подробные логи Telegram API (только для отладки) |
| `BOT_TOKEN` | да | Токен от @BotFather |
| `TELEGRAM_ADMIN_ID` | да | Числовой Telegram user ID администратора (например, [@userinfobot](https://t.me/userinfobot)) |
| `REMNAWAVE_PANEL_NAME` | нет | Название панели в админ-меню (по умолчанию «Панель 1») |
| `REMNAWAVE_PANEL_URL` | да | URL панели Remnawave, например `https://vpn.example.com` |
| `REMNAWAVE_API_TOKEN` | да | API-токен: панель → **Settings → API Tokens** ([документация](https://docs.rw/)) |
| `REMNAWAVE_CADDY_TOKEN` | нет | Доп. заголовок `X-Api-Key`, если панель за Caddy |
| `BOT_DEBUG` | нет | `true` — подробные логи Telegram API (только для отладки) |
### Админ-меню в боте
Только пользователь с `TELEGRAM_ADMIN_ID`:
- `/admin` — inline-меню (конфиг панели, проверка API, ссылка на [docs.rw](https://docs.rw/))
- Кнопки снизу (после `/start`): «Конфиг панели», «Проверить панель»
---
@@ -246,10 +262,11 @@ docker compose down --rmi local
## Устранение неполадок
### `BOT_TOKEN не задан`
### `BOT_TOKEN не задан` / `TELEGRAM_ADMIN_ID не задан`
- Проверьте, что файл `.env` лежит рядом с `docker-compose.yml`.
- В `.env` нет пробелов вокруг `=`: `BOT_TOKEN=123:ABC`, не `BOT_TOKEN = ...`.
- `TELEGRAM_ADMIN_ID` — только цифры, без `@username`.
- После правки: `docker compose up -d --force-recreate`.
### `Authentication failed` / `401 Unauthorized`
@@ -287,7 +304,11 @@ sudo usermod -aG docker $USER
```
tgvpn/
├── main.go # логика бота
├── main.go
├── internal/
│ ├── bot/ # обработчики Telegram, админ-меню
│ ├── config/ # переменные окружения
│ └── remnawave/ # клиент API панели
├── Dockerfile # multi-stage сборка
├── docker-compose.yml # оркестрация
├── .env.example # шаблон переменных