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