Перейти к содержимому
supastack
Обзор документации
WebNext.js

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

Чтобы продолжить настройку, прочитайте Настройка базы данных.

Часто задаваемые вопросы

14 вопросов

Что такое supastack?

supastack — модульная основа для создания SaaS-продуктов с AI. Она объединяет общую инфраструктуру, чтобы вы могли сосредоточиться на продуктовых функциях.

Поддерживает ли он web и mobile?

Да. supastack включает приложения Next.js и Expo как отправные точки для web- и мобильных интерфейсов.

Какая аутентификация включена?

Better Auth покрывает e-mail/пароль, OTP и социальный вход. Личные воркспейсы провижинируются вместе с аккаунтом, чтобы продуктовые записи были ограничены с первого дня.

Как он поддерживает AI?

supastack включает настраиваемый мультипровайдерный AI, учёт использования, бюджеты и зашифрованную поддержку bring-your-own-key.

Как обрабатываются подписки?

Для продуктов на ките Stripe-биллинг, подписки и права доступа образуют основу платного доступа. Секреты провайдеров остаются только на сервере.

Где живёт мой продуктовый код?

Продуктовые функции остаются в отдельном коде, а продукт настраивает и интегрирует модули основы supastack.

Как устроены цены supastack?

Кит — разовая покупка с пожизненными обновлениями: один фреймворк за $249 (временная стартовая цена — скидка $100 от стандартной цены $349) или все фреймворки (Next.js, iOS, Android) за $499 (временная стартовая цена — скидка $100 от стандартной цены $599), плюс $75 за каждое дополнительное место разработчика. Без подписки на кит. Оплата на этом сайте доставляет лицензионный ключ по e-mail, доступ к репозиторию — через приглашение GitHub.

Как воркспейсы ограничивают мои данные?

Записи пользователей ограничены по workspaceId. Идентичность, права доступа, AI-использование, события биллинга и записи аудита остаются внутри границы личного воркспейса.

Как работают фоновые задачи?

Trigger.dev — явный рантайм задач. Контракт JobRunner обещает только enqueue, status и cancel — семантика workflow остаётся специфичной для Trigger.dev и явной.

Чем почта отличается от рассылок?

Транзакционная почта покрывает продуктовые сценарии вроде уведомлений о завершении. Холодные рассылки и кампании — забота продукта, вне почтового модуля этого кита.

Как работают покупки в мобильном приложении?

Мобильное приложение поддерживает нативные покупки и восстановление через RevenueCat, а сервер проверяет доступ. Настройте аккаунты магазинов и завершите тестирование на устройствах перед публикацией. Веб-оплата остается отдельной.

Где хранятся ключи AI-провайдеров?

Bring-your-own-key креденшелы зашифрованы и остаются только на сервере. Ключи удаляются из логов; использование и бюджеты видны на уровне воркспейса.

Какие способы оплаты принимает оформление заказа?

Оформление заказа на Stripe принимает карты, а после включения кошельков в аккаунте Stripe может также предлагать Alipay и WeChat Pay — удобно для покупателей из Китая. Авторизации кошельков подтверждаются асинхронно, поэтому страница лицензии обновляется, как только платёж завершается.

Могу ли я получить возврат средств?

После получения доступа к репозиторию supastack остается вашим навсегда, поэтому возврат средств невозможен. Но будьте уверены: вы получаете полный исходный код с пожизненными обновлениями для создания и запуска неограниченного числа продуктов для себя или клиентов. Вы лишь не можете перепродавать код или распространять репозиторий как стартовый набор или шаблон.

RU
Тема