1.9 KiB
1.9 KiB
Автодеплой в Portainer
Вариант 1: Watchtower (рекомендуемый)
Шаги:
- В Portainer создай Stack с именем
mikrotik-bot - Скопируй содержимое
docker-compose.portainer.yml - Создай
.envфайл с переменными:TG_BOT_TOKEN=your_bot_token MT_API_HOST=192.168.1.1 MT_API_USER=admin MT_API_PASS=password ALLOWED_USER_IDS=123456,789012 - Deploy Stack
Как работает:
- Watchtower проверяет обновления каждые 5 минут
- При изменении кода rebuilds образ автоматически
- Чистит старые образы после обновления
Вариант 2: GitHub Registry + Webhook
Настройка GitHub:
- Включи GitHub Actions в репозитории
- Push код - автоматически собирется образ в ghcr.io
- В
docker-compose.registry.ymlзамени:image: ghcr.io/YOUR_USERNAME/mikrotik-telegram-bot:latest
Настройка Portainer:
- Создай Stack с
docker-compose.registry.yml - В настройках Stack включи "Auto Update"
- Создай Webhook для автообновления
Webhook URL:
https://portainer.domain.com/api/webhooks/YOUR_WEBHOOK_KEY
Проверка работы:
- Health check:
curl http://localhost:8000/health - Логи:
docker logs mikrotik-telegram-bot - Статус: Portainer → Stacks → mikrotik-bot
Откат:
Если что-то сломалось:
docker-compose down
docker-compose up -d
Мониторинг:
- Portainer показывает статус health check
- Telegram бот отправляет уведомления при ошибках
- FastAPI endpoint
/healthдля внешнего мониторинга