Версия: 1.0.0
Дата: 2025-12-30
Telegram бот для безопасного управления сервером с телефона.
Возможности:
- Мониторинг (диск, память, CPU, сервисы)
- Безопасная очистка L0 (автоматическая при 90%)
- Интерактивная очистка L1 (меню с кнопками при 95%)
- Критические алерты при 98%
Безопасность:
- Только разрешённые пользователи (белый список)
- Только безопасные операции (L0-L1)
- Rate limiting (10 команд в минуту)
- Логирование всех действий
/newbotInfra Botyour_infra_bot (замени на свой)Отредактируй system/config/telegram.yaml:
bots:
infra:
token: "ВАШ_ТОКЕН_ОТ_BOTFATHER" # ← вставь токен
username: "your_infra_bot" # ← твой username
allowed_users:
- 1318367261 # ← твой chat_id (см. ниже как узнать)
# Напиши боту любое сообщение, затем:
python3 system/bots/infra/run.py
# В логах увидишь:
# Unauthorized access: user_id=ТВОЙ_CHAT_ID
# Добавь этот ID в allowed_users
# Скопировать сервис
sudo cp system/bots/infra/infra-bot.service /etc/systemd/system/
# Перезагрузить systemd
sudo systemctl daemon-reload
# Запустить бота
sudo systemctl start infra-bot
# Включить автозапуск
sudo systemctl enable infra-bot
# Проверить статус
sudo systemctl status infra-bot
# Логи
sudo journalctl -u infra-bot -f
/status — общий статус системы
/disk — детали диска
/memory — детали памяти
/services — статус сервисов
/docker — статус Docker
/uptime — uptime сервера
/logs nginx — последние 20 строк лога
/cleanup L0 — безопасная очистка (кэши, tmp)
/cleanup L1 — интерактивное меню очистки
При 95% диска бот автоматически отправляет меню:
🟡 ДИСК: 95% — требуется L1 очистка
Выбери опции (можно несколько):
⬜ 🐳 Docker images (5-7 GB)
⬜ 📦 Snapd (1.2 GB)
⬜ 💾 Бэкапы >30д (varies)
⬜ 📁 venv/node_modules (varies)
⬜ 🗜️ Git gc (сжатие)
[⬜ 1] [⬜ 2]
[⬜ 3] [⬜ 4]
[⬜ 5]
[❌ Отмена]
Как использовать:
1. Нажми кнопки чтобы выбрать (⬜ → ✅)
2. Нажми [🚀 Выполнить]
3. Дождись результата (до 5 минут)
✅ Чтение статуса (READ ONLY)
✅ Очистка L0 (tmp, caches)
✅ Очистка L1 (Docker images, старые venv)
✅ Restart сервисов из белого списка
🔴 Удаление production данных
🔴 Изменение конфигов
🔴 Работа с git
🔴 Создание/удаление пользователей
🔴 L2 очистка (volumes, БД дампы)
🔴 Произвольные команды
Опасные операции — только через SSH!
system/bots/infra/
├── run.py # Точка входа
├── bot.py # Основной класс
├── config.py # Конфигурация
├── security.py # Аутентификация, rate limiting
│
├── handlers/
│ ├── commands.py # Обработчик команд
│ └── callbacks.py # Обработчик кнопок
│
├── commands/
│ ├── monitoring.py # Команды мониторинга
│ └── cleanup.py # Команды очистки
│
├── monitor_integration.py # Интеграция с monitor
├── infra-bot.service # Systemd сервис
└── README.md # Эта документация
commands/monitoring.pyhandlers/commands.py/help# Запуск вручную (для разработки)
python3 system/bots/infra/run.py
# Тест L1 меню
python3 system/bots/infra/monitor_integration.py 95
# Тест критического алерта
python3 system/bots/infra/monitor_integration.py 98
# Проверить статус
sudo systemctl status infra-bot
# Логи
sudo journalctl -u infra-bot -f
# Перезапустить
sudo systemctl restart infra-bot
Добавь свой chat_id в allowed_users в telegram.yaml
systemctl status infra-bottelegram.yamlcat system/monitor/output/latest.jsonВерсия: 1.0.0