Production Deployment
Предварительные требования
- Сервер с Docker Compose v2
- Домен с DNS
- TLS сертификаты (Let's Encrypt)
- GitHub Secrets для CI/CD
Переменные окружения
Скопировать .env.example → .env и заполнить:
| Variable | Обязательно |
|---|---|
POSTGRES_PASSWORD |
да |
JWT_SECRET |
да (длинная случайная строка) |
BOT_TOKEN |
да |
PUBLIC_API_URL |
да |
PUBLIC_WS_URL |
да (wss://) |
S3_ACCESS_KEY / S3_SECRET_KEY |
да |
Запуск
cd infra
# Положить сертификаты в nginx/certs/
docker compose -f docker-compose.prod.yml up -d --build
Webhook бота
Установить WEBHOOK_URL в .env бота.
Бэкапы PostgreSQL
docker compose -f docker-compose.prod.yml exec postgres \
pg_dump -U tabletime tabletime > backups/backup_$(date +%Y%m%d).sql
Cron: ежедневно в 03:00 UTC.
Health checks
GET /health— API- Prometheus scrape
/metrics
CI/CD
Push tag v* → .github/workflows/deploy.yml собирает образы.