Перейти к содержимому

Environment Variables

Environment Variables (переменные окружения) — это параметры конфигурации, которые передаются вашему приложению при сборке и выполнении.

  • API ключи — ключи внешних сервисов
  • URL баз данных — подключение к базе данных
  • Секреты — токены, пароли
  • Конфигурация — настройки приложения

ONREZA поддерживает переменные на двух уровнях:

Переменные, специфичные для одного проекта.

  • Доступны только в этом проекте
  • Можно привязать к определённым окружениям
  • Настраиваются в Project → Settings → Environment Variables

Переменные, общие для всех проектов в workspace.

  • Доступны во всех проектах (или выбранных)
  • Удобно для общих API ключей
  • Настраиваются в Workspace → Settings → Environment Variables

При конфликте имён используется следующий приоритет:

  1. System Variable — высший приоритет (перезаписывает пользовательские)
  2. Project Variable — перезаписывает workspace-переменные
  3. Linked Workspace Variable — базовый уровень
Деплой использует:
ONREZA_ENV=production (System — перезаписывает одноимённые)
DATABASE_URL=... (из Project)
API_KEY=... (из Workspace, т.к. нет в Project)

Переменные можно применять к определённым окружениям:

ScopeОписание
All EnvironmentsПрименяется везде
SelectedТолько к выбранным окружениям
DATABASE_URL (Production) = postgres://prod-db...
DATABASE_URL (Preview) = postgres://staging-db...

Переменные можно пометить как секреты:

  • Зашифрованы в базе данных
  • Скрыты в UI (показываются как ••••••)
  • Требуют подтверждения для просмотра

ONREZA автоматически предоставляет системные переменные при каждом деплое:

ПеременнаяОписаниеПример
ONREZA_ENVТип окруженияproduction / preview / development
ONREZA_PROJECT_NAMEИмя проектаmy-app
ONREZA_GIT_BRANCHВетка деплояmain, feature/auth
ONREZA_GIT_COMMIT_SHASHA коммитаa1b2c3d4e5f6...
ONREZA_GIT_COMMIT_MESSAGEСообщение коммитаfix: resolve login bug
ONREZA_GIT_PROVIDERGit-провайдерgithub / gitverse / sourcecraft
ONREZA_GIT_REPO_SLUGРепозиторийmy-org/my-app
ONREZA_PROTECTION_BYPASSСекрет для обхода защиты preview(только если настроен)
// Условная логика в зависимости от окружения
if (process.env.ONREZA_ENV === 'preview') {
console.log('Это preview-деплой');
}
// Информация о коммите для мониторинга
const release = process.env.ONREZA_GIT_COMMIT_SHA;

Если системные переменные конфликтуют с вашим кодом:

Project → Settings → Environment Variables → снимите галочку «Автоматически добавлять системные переменные»

Загрузите .env файл для быстрого создания переменных:

  1. Откройте Environment Variables
  2. Нажмите Import
  3. Выберите .env файл
  4. Подтвердите импорт

Скачайте все переменные в формате .env:

  1. Откройте Environment Variables
  2. Нажмите Export
  3. Файл скачается автоматически
ПараметрHobbyProEnterprise
Переменных на проект1003001 000
Общий размер на проект32 КБ64 КБ256 КБ

Общий размер считается по сумме всех значений переменных проекта. При превышении лимита операция будет отклонена с сообщением об ошибке.

Окно терминала
# Хорошо
DATABASE_URL=...
STRIPE_SECRET_KEY=...
NEXT_PUBLIC_API_URL=...
# Плохо
db=...
key=...
url=...
Окно терминала
# Production
DATABASE_URL=postgres://prod-server/db
# Preview
DATABASE_URL=postgres://staging-server/db
  • Никогда не храните секреты в коде
  • Используйте разные значения для production и preview
  • Периодически ротируйте токены и ключи