Files
telemt-bot/README.md
T
2026-03-09 16:05:44 +07:00

50 lines
2.1 KiB
Markdown

# telemt-bot
Лёгкий Telegram-бот для админ-доступа к Telemt Control API.
## Что умеет
- `/health` -> `GET /v1/health`
- `/summary` -> `GET /v1/stats/summary`
- `/users` -> `GET /v1/stats/users` (первые 20 строк)
Команды обрабатываются только от одного админ-чата (`TELEGRAM_ADMIN_CHAT_ID`).
## Переменные окружения
- `TELEGRAM_BOT_TOKEN` - токен Telegram-бота.
- `TELEGRAM_ADMIN_CHAT_ID` - chat id администратора, которому разрешены команды.
- `TELEMT_API_BASE_URL` - базовый URL API, например `http://host.docker.internal:9091`.
- `TELEMT_API_AUTH_HEADER` - значение заголовка `Authorization` для Telemt API (если включён `auth_header`).
- `TELEGRAM_HTTP_TIMEOUT_SECONDS` - timeout запросов к Telegram (по умолчанию `60`).
- `TELEMT_HTTP_TIMEOUT_SECONDS` - timeout запросов к Telemt API (по умолчанию `5`).
## Быстрый старт (PowerShell)
```powershell
Copy-Item .env.example .env
# отредактируй .env
docker compose up --build -d
docker compose logs -f
```
## Почему решение экономное по ресурсам
- Go-бинарник без рантайма и с нулевым CGO.
- Long polling (`getUpdates`) вместо частых коротких запросов.
- Один переиспользуемый `http.Client` и keep-alive соединения.
- Multi-stage сборка и минимальный образ `distroless`.
## CI/CD для Gitea Registry
Добавлен workflow: `.gitea/workflows/docker-publish.yml`.
Что делает:
- при `push` в `main`, `master`, `v*` и при `git tag v*`;
- собирает образ из `Dockerfile`;
- пушит в registry `git.shts.su/${REPO}`;
- выставляет теги: `latest`, `<branch-or-tag>`, `sha-<12-symbols>`.
Нужно создать secret в Gitea репозитории:
- `ACTIONS_PAT` - токен с правами на push в package/container registry.