Add admin menu and Remnawave panel integration
This commit is contained in:
@@ -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 # шаблон переменных
|
||||
|
||||
Reference in New Issue
Block a user