跳转到内容
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 /zh/docs/modules/config.md (or send Accept: text/markdown).

环境与配置

整个工作区唯一的已验证模式。

询问本指南
打开方式

进行一项配置更改并检查它

从正在运行的 Web 应用程序开始。在编辑器中打开apps/web/.env.local;如果不存在,请使用 Web 教程将 .env.example 复制到那里。对于无害的首次检查,请找到 EMAIL_PROVIDER=local 并将其保留在本地。此设置将产品电子邮件发送到本地预览而不是真正的收件箱。不要将 KEY=value 线粘贴到终端中。

对于您启用的每项服务,请遵循该提供商的设置指南,仅替换指定值,保存文件,使用 Ctrl + C 停止 Web 服务器,然后使用以下命令重新启动。如果验证指定了丢失的密钥,请重新打开此文件并将该密钥与提供程序指南进行比较。仅对数据库迁移使用的值保持 root .env 同步;单独复制它不会配置 Next.js。

corepack pnpm --filter @supastack/web dev

从环境示例开始

根目录的 .env.example 是配置清单。共享校验在 packages/config。把选定的应用环境与供应商模式放在一起审阅;本地界面并不等于生产凭证策略。

无凭证的参考模式要求 local/test 应用配置与 fake/本地供应商。选择生产供应商会改变运行要求。

让密钥留在 API 之后

认证密钥、数据库凭证、供应商密钥、Stripe 密钥与 Trigger 凭证都属于服务端。绝不要给它们加 NEXT_PUBLIC_ 或 EXPO_PUBLIC_ 前缀。安装过程中不要打印它们,也不要把它们放进错误响应。

浏览器只拿到公开配置与允许的模型别名。工作区归属、权限决策、预算与供应商选择都由服务端强制执行。

先用再信:检查变更

通过现有的 config 包校验配置,并运行相关的确定性测试。准备好验证真实集成时,再走单独 opt-in 的供应商冒烟路径。

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 各自解析为一个命名的适配器及其必填字段。

启用提供商会使其凭据成为必填:开启社交登录、s3 存储 kind 或 resend 邮件 kind 会让启动失败并指出缺失的变量,而不是之后在运行时出现意外。

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 是用于构建 AI 驱动 SaaS 产品的模块化基础。它把通用基础设施整合在一起,让你专注于产品专属的功能。

它支持 Web 和移动端吗?

支持。supastack 包含 Next.js 与 Expo 应用,作为 Web 与移动端体验的起点。

包含哪些认证方式?

Better Auth 覆盖邮箱/密码、OTP 与社交登录。个人工作区随账户一起开通,产品记录从第一天起就有边界。

AI 是如何支持的?

supastack 包含可配置的多供应商 AI、用量追踪、预算,以及加密的自带密钥(BYOK)支持。

订阅如何处理?

对于基于该套件构建的产品,Stripe 计费、订阅与权限构成付费访问的基础。供应商密钥仅存于服务端。

我的产品专属代码放在哪里?

产品专属功能保留在独立的代码库中,产品通过配置接入 supastack 的基础模块。

supastack 如何定价?

套件为一次性购买、终身更新:单框架 249 美元(限时优惠价,较常规价 349 美元优惠 100 美元),或全框架(Next.js、iOS、Android)499 美元(限时优惠价,较常规价 599 美元优惠 100 美元),每个额外开发者席位 75 美元。套件本身没有订阅。本站结账后通过邮件发送许可证密钥,仓库访问通过 GitHub 邀请授予。

工作区如何界定我的数据?

用户记录按 workspaceId 划定边界。身份、权限、AI 用量、计费事件与审计条目都留在个人工作区边界内。

后台任务如何工作?

Trigger.dev 是明确的任务运行时。JobRunner 契约只承诺 enqueue、status 与 cancel——工作流语义保持 Trigger.dev 专有且显式。

邮件与营销触达有何不同?

事务性邮件覆盖产品工作流,如任务完成通知。冷触达与营销活动属于产品自身的范畴,不在本套件的邮件模块内。

移动端购买如何运作?

移动端已支持 RevenueCat 原生购买和恢复购买,访问权限由服务端验证。发布前需配置商店账户并完成设备测试。Web 计费保持独立。

AI 供应商密钥存放在哪里?

自带密钥凭证经过加密且仅存于服务端。密钥在日志中被脱敏;用量与预算在工作区级别保持可见。

结账支持哪些付款方式?

Stripe 托管结账接受银行卡,在 Stripe 账户启用后还可提供支付宝与微信支付——方便中国买家。钱包授权为异步确认,付款完成后许可证页面会立即更新。

我能申请退款吗?

获得代码仓库访问权限后,supastack 将永久归你所有,因此无法退款。但请放心,你将获得包含终身更新的完整源代码,可为你自己或客户构建并发布无限数量的产品。你只需注意不能转卖代码,也不能将仓库作为启动模板二次分发。

CN
主题