Перейти к содержанию

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 бота

https://<domain>/bot/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 собирает образы.