---
title: "Публічні змінні середовища"
description: "Змінні NEXT_PUBLIC_* і ключі public_shared, які покупець може редагувати на вкладці Secrets в Order Lab — що потрапляє до браузерного бандла."
locale: "uk"
---
# Публічні змінні середовища

> **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` | Назва бекенду сховища для клієнта | [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** | дозволені списки в `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` (дозволений список шаблону перевіряється).

## Пов’язана документація

  
- [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) — Передумова: центральна сторінка конфігурації проєкту.
