Skip to content

Переменные окружения

Конфигурация бэкенда pipel8ne осуществляется через переменные окружения, обычно задаваемые в файле .env в корне проекта.

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

Должны быть заданы до запуска сервера. При их отсутствии приложение откажется запускаться.

JWT_SECRET

Секретный ключ для подписи и проверки JSON Web Token.

Требования:

  • Любая строка, но должна быть длинной и случайной (рекомендуется 64+ шестнадцатеричных символа)
  • Храните в тайне — любой, кто знает это значение, может подделать токены аутентификации

Генерация:

bash
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"

SECRETS_ENCRYPTION_KEY

Ключ для шифрования учётных данных в хранилище (AES-256-GCM).

Требования:

  • Ровно 32 байта (64 шестнадцатеричных символа)
  • При смене ключа все ранее сохранённые учётные данные станут нечитаемыми

Генерация:

bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

DANGER

Сделайте резервную копию этого ключа. Если вы его потеряете, все учётные данные в хранилище станут безвозвратно недоступными.


DATABASE_URL

Строка подключения к MongoDB.

Формат:

mongodb://[username:password@]host[:port]/database[?options]

Примеры:

env
# Локальная разработка
DATABASE_URL=mongodb://pipel8ne:dev_password@localhost:27017/pipel8ne_dev?authSource=admin

# MongoDB Atlas
DATABASE_URL=mongodb+srv://user:password@cluster.mongodb.net/pipel8ne?retryWrites=true&w=majority

# Docker Compose (внутренняя сеть)
DATABASE_URL=mongodb://pipel8ne:password@mongo:27017/pipel8ne?authSource=admin

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

NODE_ENV

Управляет поведением во время выполнения.

ЗначениеЭффект
developmentВключает Swagger UI на /docs, подробное логирование
productionОтключает Swagger UI, минимальное логирование

По умолчанию: development


PORT

Порт, на котором слушает HTTP-сервер.

По умолчанию: 3000


Полный пример .env

env
# Обязательные
DATABASE_URL=mongodb://pipel8ne:dev_password@localhost:27017/pipel8ne_dev?authSource=admin
JWT_SECRET=your_64_hex_char_jwt_secret_here
SECRETS_ENCRYPTION_KEY=your_64_hex_char_encryption_key_here

# Необязательные
NODE_ENV=development
PORT=3000

Docker Compose

При использовании Docker Compose переменные можно задать в .env в корне проекта. Docker Compose автоматически загружает этот файл:

yaml
# docker-compose.yml (фрагмент)
services:
  backend:
    env_file: .env

Или указать прямо в файле compose:

yaml
services:
  backend:
    environment:
      - JWT_SECRET=${JWT_SECRET}
      - SECRETS_ENCRYPTION_KEY=${SECRETS_ENCRYPTION_KEY}
      - DATABASE_URL=mongodb://pipel8ne:${MONGO_PASSWORD}@mongo:27017/pipel8ne

Released under the MIT License.