Перейти к содержимому
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/modules/config.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 — инвентарь конфигурации. Общая валидация живёт в packages/config. Просматривайте выбранное окружение приложения и режимы провайдеров вместе; локальный интерфейс — не стратегия продакшен-креденшел.

Режим эталона без креденшел требует локальной/тестовой конфигурации приложения и fake/локальных провайдеров. Выбор продакшен-провайдера меняет требования рантайма.

Держите секреты за API

Секреты аутентификации, креденшелы базы, ключи провайдеров, секреты Stripe и креденшелы Trigger — только серверные. Никогда не префиксуйте их NEXT_PUBLIC_ или EXPO_PUBLIC_. Не печатайте их при установке и не включайте в ответы об ошибках.

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

Проверяйте изменение перед использованием

Валидируйте конфигурацию через существующий пакет config и запускайте соответствующие детерминированные тесты. Используйте отдельно подключаемый путь smoke провайдеров, когда готовы проверить реальные интеграции.

corepack pnpm test
corepack pnpm check
corepack pnpm build

Настройка и конфигурация

packages/config — единственное место, парсящее process.env: zod-схема производит типизированные ServerConfig и PublicConfig, а выбор провайдера выражается kinds — providers.ai, providers.billing, providers.email, providers.jobs, providers.storage разрешаются каждый в именованный адаптер плюс его обязательные поля.

Включение провайдера делает его учётные данные обязательными: включение социального входа, kind хранилища s3 или kind почты resend проваливает запуск, называя недостающую переменную, вместо сюрприза в рантайме позже.

STORAGE_PROVIDER=s3
STORAGE_BUCKET=kit
STORAGE_ENDPOINT=https://s3.example
STORAGE_PUBLIC_BASE_URL=https://cdn.example
# → config rejects the env if a required field is missing

Рабочий процесс внедрения

Читайте конфигурацию через parseServerConfig на серверной границе и передавайте типизированное значение внутрь — не трогайте process.env внутри кода функций. Публичная конфигурация — отдельный, намеренно маленький объект, безопасный для сериализации клиенту.

Специфичный для продукта env принадлежит собственной схеме потребляющего продукта. Сопротивляйтесь разрастанию схемы кита под нужды одного продукта.

Проверка и устранение неполадок

Запускайте тесты пакета config после изменения схемы и проверяйте, что недостающая обязательная переменная называет себя в ошибке. Env, который парсится локально, но не в продакшене, обычно означает недокументированное обязательное поле.

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

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
Тема