For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/web/configuration.md (or send Accept: text/markdown).
Конфигурация
Держите конфигурацию приложения явной, а креденшелы провайдеров — на сервере.
Внесите одно изменение конфигурации и проверьте его.
Начните с работающего веб-приложения. В редакторе открываем apps/web/.env.local; если он не существует, скопируйте туда .env.example, используя веб-руководство. Для безопасной первой проверки найдите EMAIL_PROVIDER=local и оставьте его локальным. Этот параметр отправляет электронную почту продукта в локальный предварительный просмотр, а не в реальный почтовый ящик. Не вставляйте строки KEY=value в терминал.
Для каждой службы, которую вы включаете, следуйте руководству по настройке этого поставщика, замените только названные значения, сохраните файл, остановите веб-сервер с помощью Ctrl + C и перезапустите с помощью команды ниже. Если при проверке будет обнаружен отсутствующий ключ, повторно откройте этот файл и сравните этот ключ с руководством поставщика. Синхронизируйте корневой файл .env только для значений, используемых при миграции базы данных; копирование только его не приводит к настройке Next.js.
corepack pnpm --filter @supastack/web devНастройки, которые вы действительно будете редактировать первыми
.env.example в корне репозитория — полный перечень настроек, которые понимает комплект; имени, отсутствующего в этом файле, не существует. В начале вы затрагиваете лишь несколько — остальные остаются на значениях по умолчанию, пока их не потребует руководство провайдера.
Какой файл читает каждое приложение: корневой .env питает команды миграций, apps/web/.env.local — сервер Next.js, а apps/mobile/.env.local — Expo. Редактирование одного файла не настраивает остальные, поэтому DATABASE_URL находится и в корневом .env, и в apps/web/.env.local.
APP_URL— адрес, по которому живёт приложение; локальноhttp://localhost:3000, в продакшене — ваш домен.DATABASE_URL— строка подключения к Postgres, которую совместно используют миграции и сервер.AUTH_SECRETиCREDENTIAL_ENCRYPTION_KEY— генерируемые секреты;node scripts/setup-env.mjsзаполняет их за вас (этот помощник поставляется в веб-репозитории и монорепозитории All Platforms).- Селекторы провайдеров —
EMAIL_PROVIDER,AI_PROVIDER,BILLING_PROVIDER,JOB_PROVIDER,CAPTCHA_PROVIDER— каждый выбирает, какой адаптер запускается; значения по умолчаниюlocal/fake/offне требуют аккаунта. - Секреты провайдеров, такие как
RESEND_API_KEYилиSTRIPE_SECRET_KEY, — добавляйте только тогда, когда об этом говорит соответствующее руководство провайдера.
Начните с примера окружения
Корневой .env.example — инвентарь конфигурации. Общая валидация живёт в packages/config. Просматривайте выбранное окружение приложения и режимы провайдеров вместе; локальный интерфейс — не стратегия продакшен-креденшел.
Режим эталона без креденшел требует локальной/тестовой конфигурации приложения и fake/локальных провайдеров. Выбор продакшен-провайдера меняет требования рантайма.
Держите секреты за API
Секреты аутентификации, креденшелы базы, ключи провайдеров, секреты Stripe и креденшелы Trigger — только серверные. Никогда не префиксуйте их NEXT_PUBLIC_ или EXPO_PUBLIC_. Не печатайте их при установке и не включайте в ответы об ошибках.
Браузер получает публичную конфигурацию и разрешённые алиасы моделей. Владение воркспейсом, решения о правах, бюджеты и выбор провайдера остаются серверно-принудительными.
Проверяйте изменение перед использованием
Валидируйте конфигурацию через существующий пакет config и запускайте соответствующие детерминированные тесты. Используйте отдельно подключаемый путь smoke провайдеров, когда готовы проверить реальные интеграции.
corepack pnpm test
corepack pnpm check
corepack pnpm buildЧтобы продолжить настройку, прочитайте Настройка базы данных.