Skip to content

Деплой

CI/CD Workflows

WorkflowТриггерНазначение
ci.ymlManual / Push to dev / PRПроверка форматирования
deploy-to-dev.ymlManual / Push to devДеплой инфраструктуры на dev
deploy-to-prod.ymlManualДеплой инфраструктуры на prod

Автоматический деплой (Dev)

Push в ветку dev автоматически запускает деплой на dev-сервер.

bash
git checkout dev
git push origin dev

Ручной деплой (Prod)

  1. Перейти в GitHub Actions
  2. Выбрать "Deploy to Prod" workflow
  3. Нажать "Run workflow"

GitHub Secrets

Для работы CI/CD необходимы следующие секреты:

SSH доступ

СекретОписание
DEV_INTEG_SSH_HOSTIP dev-сервера
DEV_INTEG_SSH_USERSSH пользователь dev
DEV_INTEG_SSH_KEYSSH приватный ключ dev
PROD_INTEG_SSH_HOSTIP prod-сервера
PROD_INTEG_SSH_USERSSH пользователь prod
PROD_INTEG_SSH_KEYSSH приватный ключ prod

Doppler

СекретОписание
DEV_DOPPLER_TOKENDoppler токен dev
PROD_DOPPLER_TOKENDoppler токен prod

Cloudflare (для документации)

СекретОписание
CLOUDFLARE_PAGES_API_TOKENAPI токен Cloudflare Pages
CLOUDFLARE_ACCOUNT_IDID аккаунта Cloudflare

Процесс деплоя

  1. Checkout — получение кода
  2. SSH Connect — подключение к серверу
  3. Create Directory — создание /opt/integ/
  4. Copy Files — копирование docker-compose.yml
  5. Generate .env — получение секретов из Doppler
  6. Docker Compose Up — запуск сервисов
  7. Health Check — проверка работоспособности

Локальный запуск

bash
# Установка зависимостей
npm install

# Генерация .env
./scripts/generate-env.sh dev

# Проверка форматирования
npm run format:check

# Форматирование кода
npm run format

Health Check

Скрипт scripts/health-check.sh проверяет:

  • Доступность Traefik
  • Ответ от API
  • Ответ от Admin
  • Статус PostgreSQL (только dev)

Integ Deploy Documentation