Архитектура
Назначение проекта
Integ Deploy управляет базовой инфраструктурой для платформы integ.happ.tools:
- Создаёт директорию
/opt/integ/на серверах - Деплоит базовую инфраструктуру (Traefik, PostgreSQL)
- Подготавливает окружение для контейнеров integ-api и integ-admin
Поток деплоя
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ integ-deploy │────▶│ integ-api │────▶│ integ-admin │
│ (инфраструктура)│ │ (backend) │ │ (frontend) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
│ Создаёт /opt/integ/ с:
│ - docker-compose.yml
│ - .env (из Doppler)
│ - Traefik + PostgreSQL
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Сервер │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Traefik │ │ PostgreSQL │ │ Сервисы │ │
│ │ :80/:443 │ │ :5432 │ │ api + admin │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
└─────────────────────────────────────────────────────────────────┘Docker-сервисы
Dev окружение
| Сервис | Порт | Описание |
|---|---|---|
| happ-integ-traefik | 80, 443 | Reverse proxy с SSL |
| happ-integ-db | 5432 | PostgreSQL база данных |
| happ-integ-api | 3000 | Backend API (внутренний порт) |
| happ-integ-admin | 4200 | Админ-панель (внутренний порт) |
Prod окружение
| Сервис | Порт | Описание |
|---|---|---|
| happ-integ-traefik | 80, 443 | Reverse proxy с SSL |
| happ-integ-api | 3000 | Backend API (внутренний порт) |
| happ-integ-admin | 4200 | Админ-панель (внутренний порт) |
В prod PostgreSQL внешний (managed DB).
Cloudflare Workers
integ-core деплоится отдельно через Wrangler на Cloudflare CDN:
- Маршруты:
/sofa/*на основных доменах - Обрабатывается на edge-уровне CF, не через Traefik
Домены
Dev
| Домен | Назначение |
|---|---|
| integ.dev.happ.tools | Админ-панель |
| api.integ.dev.happ.tools | Backend API |
| integ.dev.happ.tools/sofa/* | Cloudflare Worker |
Prod
| Домен | Назначение |
|---|---|
| integ.happ.tools | Админ-панель |
| api.integ.happ.tools | Backend API |
| integ.happ.tools/sofa/* | Cloudflare Worker |
SSL/TLS
Traefik автоматически управляет SSL-сертификатами через Let's Encrypt:
- Сертификаты получаются автоматически при первом деплое
- Автообновление за 30 дней до истечения
- HTTP автоматически редиректится на HTTPS
- Сертификаты хранятся в
letsencrypt/acme.json