Окружения и переменные
Doppler
Все секреты и переменные окружения управляются через Doppler.
Генерация .env
bash
# Dev окружение
./scripts/generate-env.sh dev
# Prod окружение
./scripts/generate-env.sh prod
# Через npm
npm run generate:env -- devDoppler CLI
bash
# Установка Doppler CLI
brew install dopplerhq/cli/doppler
# Авторизация
doppler login
# Проверка конфигурации
doppler configsОбязательные секреты
База данных (Dev)
| Переменная | Описание |
|---|---|
| POSTGRES_USER | Пользователь БД |
| POSTGRES_PASSWORD | Пароль БД |
| POSTGRES_DB | Имя базы данных |
SSL/TLS
| Переменная | Описание |
|---|---|
| ACME_EMAIL | Email для уведомлений Let's Encrypt |
| CLOUDFLARE_DNS_API_TOKEN | API токен 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