Init Commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user