74 lines
2.3 KiB
Markdown
74 lines
2.3 KiB
Markdown
# tg-admin-bot
|
||
|
||
Telegram-бот администратора для Linux-серверов. Даёт быстрый доступ к статусам, бэкапам и операциям через чат.
|
||
|
||
## Возможности
|
||
|
||
- Docker: статус, рестарт, логи (tail, since, фильтр).
|
||
- Arcane: список проектов, refresh, up/down, restart.
|
||
- Бэкапы (restic): снапшоты, статистика репозитория, запуск бэкапа, очередь, restic check, weekly report.
|
||
- Система: диски, безопасность, проверка URL, метрики, обновления, upgrade, reboot, железо, SSL (NPMplus).
|
||
- Алерты: диск/нагрузка/SMART с cooldown и quiet hours.
|
||
- Аудит: все нажатия и сообщения (ротация раз в неделю).
|
||
- Логи: ротация логов бота и инциденты.
|
||
|
||
## Требования
|
||
|
||
- Linux-хост.
|
||
- Python 3.11+ (проверено на 3.13).
|
||
- Системные утилиты по необходимости:
|
||
- docker
|
||
- restic
|
||
- smartctl (smartmontools)
|
||
- sudo для reboot/upgrade/backup скриптов
|
||
- systemd (для таймеров/статуса, желательно)
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
python -m venv .venv
|
||
source .venv/bin/activate
|
||
pip install -r req.txt
|
||
```
|
||
|
||
## Настройка
|
||
|
||
1. Скопировать пример:
|
||
|
||
```bash
|
||
cp config.example.yaml config.yaml
|
||
```
|
||
|
||
2. Заполнить минимум:
|
||
|
||
- `telegram.token`
|
||
- `telegram.admin_id`
|
||
|
||
3. Опционально:
|
||
|
||
- путь к restic env (`paths.restic_env`)
|
||
- docker autodiscovery или явный список `docker.containers`
|
||
- Arcane и NPMplus API
|
||
- аудит логов
|
||
|
||
Подробности в `CONFIG.md`.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python bot.py
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Copyright (C) 2026 benya
|
||
|
||
GNU GPL v3.0. Полный текст в `LICENSE`.
|
||
|
||
## Примечания
|
||
|
||
- Для NPMplus с self-signed TLS установи `npmplus.verify_tls: false`.
|
||
- Бот использует `sudo` для части операций — настрой права.
|
||
- Включи `safety.dry_run`, если хочешь безопасный режим без действий.
|
||
- Аудит по умолчанию пишется в `/var/server-bot/audit.log`.
|