Skip to content

Деплой

Проект использует GitHub Actions для автоматического деплоя приложения и документации.

Окружения

ОкружениеВеткаURL приложенияURL документации
Productionmainadmin.happ.toolsdocs.happ.tools
Developmentdevadmin.dev.happ.toolsdocs.happ.tools

Деплой приложения

Приложение деплоится как Docker контейнер на сервер через SSH.

Workflow файлы

  • .github/workflows/deploy-dev.yml — деплой dev окружения
  • .github/workflows/deploy-prod.yml — деплой production окружения

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

mermaid
flowchart LR
    A[Push в ветку] --> B[Build Docker Image]
    B --> C[Push в GHCR]
    C --> D[SSH на сервер]
    D --> E[Pull & Restart]
  1. Build — собирается Docker образ с Doppler для секретов
  2. Push — образ загружается в GitHub Container Registry (ghcr.io/happ-ai/saas-admin)
  3. Deploy — через SSH обновляется контейнер на сервере

Секреты для деплоя приложения

СекретОписание
DEV_DOPPLER_TOKENDoppler токен для dev окружения
PROD_DOPPLER_TOKENDoppler токен для production
DEV_SSH_HOSTSSH хост dev сервера
DEV_SSH_USERSSH пользователь
DEV_SSH_KEYSSH приватный ключ
PROD_SSH_HOSTSSH хост prod сервера
PROD_SSH_USERSSH пользователь
PROD_SSH_KEYSSH приватный ключ
GHCR_PATGitHub Personal Access Token для Container Registry

Деплой документации

Документация доступна на docs.happ.tools.

Триггеры

  • Push в ветки main или dev
  • Изменения в папке docs/**

CI Pipeline

Файл: .github/workflows/ci.yml

Запускается при push в dev ветку и выполняет:

  1. Type Check — проверка TypeScript типов
  2. Lint — проверка ESLint
  3. Build — тестовая сборка production

Release Pipeline

Файл: .github/workflows/release.yml

Автоматически создаёт git теги при мерже release веток в main:

  • Формат ветки: release/1.2.3
  • Создаётся тег: v1.2.3

Локальная разработка документации

bash
npm run docs:dev         # Запустить dev сервер
npm run docs:build       # Собрать документацию
npm run docs:preview     # Превью сборки

Troubleshooting

Build падает при деплое

bash
npm run build:prod
npm run typecheck
npm run lint:check

Документация не обновляется

  • Изменения в папке docs/ закоммичены
  • Push в правильную ветку (main или dev)
  • Workflow запустился в GitHub Actions

Следующие шаги

SaaS Admin Documentation