mikrotik-bot/DEPLOY.md

1.9 KiB
Raw Blame History

Автодеплой в 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 замени:
    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

Откат:

Если что-то сломалось:

docker-compose down
docker-compose up -d

Мониторинг:

  • Portainer показывает статус health check
  • Telegram бот отправляет уведомления при ошибках
  • FastAPI endpoint /health для внешнего мониторинга