# Автодеплой в Portainer ## Вариант 1: Watchtower (рекомендуемый) ### Шаги: 1. В Portainer создай Stack с именем `mikrotik-bot` 2. Скопируй содержимое `docker-compose.portainer.yml` 3. Создай `.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 ``` 4. Deploy Stack ### Как работает: - Watchtower проверяет обновления каждые 5 минут - При изменении кода rebuilds образ автоматически - Чистит старые образы после обновления ## Вариант 2: GitHub Registry + Webhook ### Настройка GitHub: 1. Включи GitHub Actions в репозитории 2. Push код - автоматически собирется образ в ghcr.io 3. В `docker-compose.registry.yml` замени: ```yaml image: ghcr.io/YOUR_USERNAME/mikrotik-telegram-bot:latest ``` ### Настройка Portainer: 1. Создай Stack с `docker-compose.registry.yml` 2. В настройках Stack включи "Auto Update" 3. Создай 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 ## Откат: Если что-то сломалось: ```bash docker-compose down docker-compose up -d ``` ## Мониторинг: - Portainer показывает статус health check - Telegram бот отправляет уведомления при ошибках - FastAPI endpoint `/health` для внешнего мониторинга