Этот проект представляет собой Telegram-бота для управления Docker-контейнерами. Бот позволяет запускать, останавливать и перезапускать контейнеры, а также менять их конфигурацию на лету.
- Асинхронное программирование для эффективного взаимодействия с Telegram API и Docker.
- Поддержка множества проектов и конфигураций.
- Логгирование всех ключевых действий и исключений.
- Безопасность: доступ ограничен только для администратора.
- Python 3.8+
- Docker
- Telegram Bot API Token
- Переменные окружения (см. раздел "Конфигурация")
На самом деле данное решение не будет работать в докер-контейнере, упаковал в него я по привычке, запускать его нужно естественно в среде самого сервера, где есть доступ к докеру, который запускает ваши контейнеры.
Можно делать это скриптом, который будет запускать бота в фоне:
#!/bin/bash
pkill -f -e botenv.py
rm -rf __pycache__
rm -rf botenv.log
nohup python3 botenv.py >> botenv.log 2>&1 &
disown
Переменные окружения задаются в файле .env
:
BOT_API_TOKEN
: Токен Telegram-ботаADMIN_ID
: ID администратора в TelegramPROJECT_DIR
: Директория с Docker-проектамиENV_DIR
: Директория с файлами окружения для Docker-контейнеровDEBUG
: Флаг для активации режима отладки (опционально)
-
Клонировать репозиторий:
git clone https://github.com/omeh2003/BotEnvrot.git
-
Установить зависимости:
pip install -r requirements.txt
-
Заполнить
.env
файл согласно шаблону. -
Запустить бота:
python botenv.py
- Отправьте команду
/start
боту в Telegram. - Выберите проект из предложенного списка.
- Выберите файл окружения или выполните другую команду (остановить, перезапустить).
- Ведется разработка обратки webhook-сообщений от Github, для автоматического обновления проектов после сборки в Github Actions.
- Более надежный механизм работы с докер композом.
MIT