Skip to content

Окружения и переменные

Doppler

Все секреты и переменные окружения управляются через Doppler.

Генерация .env

bash
# Dev окружение
./scripts/generate-env.sh dev

# Prod окружение
./scripts/generate-env.sh prod

# Через npm
npm run generate:env -- dev

Doppler CLI

bash
# Установка Doppler CLI
brew install dopplerhq/cli/doppler

# Авторизация
doppler login

# Проверка конфигурации
doppler configs

Обязательные секреты

База данных (Dev)

ПеременнаяОписание
POSTGRES_USERПользователь БД
POSTGRES_PASSWORDПароль БД
POSTGRES_DBИмя базы данных

SSL/TLS

ПеременнаяОписание
ACME_EMAILEmail для уведомлений Let's Encrypt
CLOUDFLARE_DNS_API_TOKENAPI токен Cloudflare для DNS challenge (prod)

Окружения

Dev

  • Сервер: Указан в DEV_INTEG_SSH_HOST
  • PostgreSQL: Локальный контейнер
  • Домены: *.dev.happ.tools
  • Doppler config: dev

Prod

  • Сервер: Указан в PROD_INTEG_SSH_HOST
  • PostgreSQL: Managed DB (внешний)
  • Домены: *.happ.tools
  • Doppler config: prod

Структура на сервере

После деплоя /opt/integ/ содержит:

/opt/integ/
├── docker-compose.yml    # Из docker-compose.{dev,prod}.yml
├── .env                  # Сгенерирован из Doppler
└── letsencrypt/
    └── acme.json         # SSL сертификаты (автоматически)

Docker Compose

Dev (docker-compose.dev.yml)

Включает:

  • Traefik (reverse proxy + SSL)
  • PostgreSQL
  • Placeholder для integ-api
  • Placeholder для integ-admin

Prod (docker-compose.prod.yml)

Включает:

  • Traefik (reverse proxy + SSL)
  • Placeholder для integ-api
  • Placeholder для integ-admin

PostgreSQL в prod — внешний managed сервис.

Важные замечания

  • Никогда не коммитьте .env файлы
  • Используйте только Doppler для управления секретами
  • SSL сертификаты управляются автоматически Traefik
  • Placeholders для api/admin обновляются их собственными CI/CD

Integ Deploy Documentation