mikrotik-bot/DEPLOY.md

58 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Автодеплой в 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` для внешнего мониторинга