Все переменные окружения хранятся в одном файле — packages/env/.env. Этот файл автоматически подтягивается из любого пакета монорепозитория.
Файл .env содержит секретные данные (пароли, ключи). Никогда не коммитьте его в репозиторий. Он уже добавлен в .gitignore.

Обязательные переменные

ПеременнаяТипОписание
DATABASE_URLstring (URL)Строка подключения к базе данных
LICENSE_KEYstringЛицензионный ключ Segmenta
CLIENT_URLstring (URL)URL клиентского приложения

Опциональные переменные

ПеременнаяТипПо умолчаниюОписание
PORTnumber3001Порт API-сервера
NODE_ENVdevelopment | test | productiondevelopmentРежим работы
DATABASE_DIALECTmysql | postgresmysqlТип базы данных
CLICKHOUSE_URLstring (URL)URL ClickHouse для аналитики
CLICKHOUSE_DATABASEstringanalyticsНазвание базы ClickHouse
COOKIE_SECRETstring (мин. 32 символа)Секрет для подписи cookies
COOKIE_DOMAINstringДомен для cookies
COOKIE_SECUREtrue | falsetrueИспользовать secure cookies
IS_DEMOtrue | falsefalseРежим демо-стенда
SENTRY_DSNstring (URL)DSN Sentry для серверной части
SENTRY_ENVIRONMENTstringОкружение Sentry (сервер)
SENTRY_TRACES_SAMPLE_RATEnumber (0–1)0.1Доля трейсов Sentry (сервер)
SENTRY_RELEASEstringВерсия релиза Sentry (сервер)
NEXT_PUBLIC_API_URLstring (URL)Публичный URL API (для клиента)
NEXT_PUBLIC_SENTRY_DSNstring (URL)DSN Sentry для клиента
NEXT_PUBLIC_SENTRY_ENVIRONMENTstringОкружение Sentry (клиент)
NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATEnumber (0–1)0.1Доля трейсов Sentry (клиент)
NEXT_PUBLIC_SENTRY_RELEASEstringВерсия релиза Sentry (клиент)

Пример файла

packages/env/.env
# База данных
DATABASE_URL="mysql://root:password@localhost:3306/segmenta"
DATABASE_DIALECT="mysql"

# Сервер
PORT=3001
NODE_ENV=development
LICENSE_KEY="ваш-лицензионный-ключ"

# Клиент
CLIENT_URL="http://localhost:3000"
NEXT_PUBLIC_API_URL="http://localhost:3001"

# Cookies (опционально)
COOKIE_SECRET="ваш-секрет-минимум-32-символа-длиной"
COOKIE_DOMAIN="localhost"
COOKIE_SECURE=false

# Аналитика ClickHouse (опционально)
CLICKHOUSE_URL="http://localhost:8123"
CLICKHOUSE_DATABASE="analytics"

Подключение к базе данных

Формат DATABASE_URL зависит от выбранного диалекта:
mysql://user:password@host:3306/database
Если пароль содержит спецсимволы, закодируйте их в URL-формате. Например, p@ssp%40ss.

Валидация

При запуске приложения все переменные автоматически проверяются. Если обязательная переменная отсутствует или указана неверно — приложение не запустится и покажет понятную ошибку с описанием проблемы.
На клиенте доступны только переменные с префиксом NEXT_PUBLIC_ (NEXT_PUBLIC_API_URL и NEXT_PUBLIC_SENTRY_*). Все остальные — серверные и недоступны в браузере.