---
title: "Публичные переменные окружения"
description: "Редактируемые покупателем ключи NEXT_PUBLIC_* и public_shared на вкладке Secrets в Order Lab — что попадает в браузерный бандл."
locale: "ru"
---
# Публичные переменные окружения

> **Warning**
> Каждое значение `NEXT_PUBLIC_*` является **публичным** — оно попадает в JavaScript-бандл браузера. Никогда не помещайте приватные ключи, пароли SMTP или секреты Auth.js под именем `NEXT_PUBLIC_`.

Публичные переменные классифицируются по префиксу (`NEXT_PUBLIC_*` → класс `public`) и фильтруются для покупателей по владению (`public_shared` или `owner_private` с публичным классом). Покупатели редактируют их в **Secrets** (`?tab=secrets`); интеграторы также видят их в **Env**.

### For founders

## Что обычно нужно задать

| Переменная | Назначение | Руководство |
|----------|---------|--------|
| `NEXT_PUBLIC_BASE_URL` / `NEXT_PUBLIC_APP_URL` | Канонический URL сайта для callback Auth.js и ссылок | [Secrets](/docs/configuration/secrets.md) |
| `NEXT_PUBLIC_STORAGE_PROVIDER` | Метка backend хранилища для клиента | [Ring Filebase](/docs/integrations/ring-filebase.md) |
| `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID` | Включает QR WalletConnect / мобильные кошельки | [WalletConnect](/docs/configuration/walletconnect.md) |
| `NEXT_PUBLIC_FIREBASE_*` | Клиентская конфигурация FCM / Firebase для веба | [Firebase](/docs/backend/firebase.md) · [FCM](/docs/features/push-notifications-fcm.md) |

Название бренда, слоган и логотип **не** задаются здесь — используйте **Project** (`?tab=project`), чтобы зеркала при деплое оставались согласованными.

### Чеклист

- [ ] Базовый URL совпадает с доменом, на котором вы запускаетесь (`https://…`, без неожиданного слэша в конце).
- [ ] Задан Project ID WalletConnect, если участники должны подключать телефонные кошельки.
- [ ] Публичные ключи Firebase заданы только если нужны push / клиентские функции Firebase.
- [ ] Сохраните в Secrets — попросите интегратора выполнить деплой, чтобы ConfigMap подхватил изменения.

### For developers

## Классификация (проверено)

| Ось | Правило | Модуль |
|------|------|--------|
| **class** | `key.startsWith('NEXT_PUBLIC_')` → `public`, иначе `secret` | `env-template-parser.ts` `classifyKey` |
| **owner** | allowlists в `env-key-ownership.ts` | покупатель видит `owner_private` + `public_shared` |

`PUBLIC_SHARED_EXACT` сейчас включает:

- `NEXT_PUBLIC_BASE_URL`
- `NEXT_PUBLIC_APP_URL`
- `NEXT_PUBLIC_STORAGE_PROVIDER`
- `RINGBASE_API_URL`
- `RINGBASE_PUBLIC_URL`
- `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID`

Клиентские ключи Firebase используют префикс `NEXT_PUBLIC_FIREBASE_*` → `owner_private` (редактирует покупатель). Неизвестные ключи шаблона по умолчанию относятся к `integrator_ops`.

Сохранение выполняется через `PATCH /api/my-orders/[id]/env` → `ProjectDeploymentService.saveEnvConfig` (allowlist шаблона проверяется).

## Связанная документация

  
- [configuration/secrets](/docs/configuration/secrets.md) — Следующий шаг: приватные секреты и шифрование на той же вкладке Secrets.

  
- [configuration/walletconnect](/docs/configuration/walletconnect.md) — Углубление: создайте Project ID Reown Cloud для NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID.

  
- [deployment/environment](/docs/deployment/environment.md) — См. также: полный каталог env.local.template.

  
- [configuration](/docs/configuration.md) — Предпосылка: центральная страница конфигурации проекта.
