定制
单用户模式(Solo)
不是所有 SaaS 都需要"组织/团队"。把 ORGS_MODE 设为 solo,模板即变成单用户产品:
组织概念从 UI、文案、服务端 API 全面隐藏,而 credits、API keys、AI、审计日志照常工作
——它们静默挂在每位用户自动创建的个人工作区(porg_{userId})上。
开关
ORGS_MODE 是必填环境变量,只接受 team 或 solo,缺失或拼错会在启动时报错拒绝
服务(宁可起不来,不可形态错)。注意 wrangler 的命名环境不继承顶层 vars——
wrangler.jsonc 顶层和 env.production.vars 都要设,否则本地与生产会静默分裂成两种形态。
solo 模式下的行为差异
- 侧栏没有组织切换器和"团队"入口;
/app/orgs重定向到/app;邀请接受页 404。 - 服务端同样封死:建组织、发邀请、加成员、删组织的 API 全部被拒绝。
- 付费入口保留个人 Pro 订阅/买断与 credits 充值;座位订阅随组织页一起消失。
- 生命周期邮件:D3"邀请团队"跳过;D7 升级邮件按个人套餐判定、指向
/app/pro。 - 审计日志保留,作为个人安全日志(登录、2FA、API key 事件)。
启动不变量:为什么 team → solo 会拒绝启动
solo 模式启动时会检查数据库里是否存在"团队形态"的数据:非个人组织、≥2 人的组织、 个人组织归属错位、活跃/欠费中的座位订阅、pending 邀请。任一存在即拒绝服务并说明原因 ——带着活跃座位订阅切到 solo 意味着"客户继续被扣款却无处管理订阅",这类状态宁可 不启动。如确要从 team 切到 solo:先取消全部座位订阅、撤销 pending 邀请、删除非个人 组织,然后再翻开关。solo → team 方向随时安全:个人工作区就是普通组织,切回后 一切 UI 重新出现。
常见问题
- 切换需要重新构建吗? 不需要。同一份构建产物服务两种模式,改 Dashboard 环境变量
或重新
wrangler deploy即生效(新部署版本滚动生效)。 - 忘了设
ORGS_MODE会怎样? 每个请求 500,日志里有明确报错——这是有意的 fail-fast。