License 一览 —— 用它做商业产品完全免费:无费用、无授权密钥、 无需注册、无 Copyleft。npm 发布包是 MIT;本仓库是 FSL-1.1-ALv2, 除「售卖 Sailor 的替代品」外的一切用途都允许,且每个版本在发布两年后 自动转为 Apache-2.0。付费档卖的是支持、SLA、赔偿和商标授权, 从不是软件的使用权。详见下方 License 章节、 LICENSE-COMMERCIAL.md 和 docs/legal/licensing-faq.md。
30 秒上手 —— 零 SaaS 密钥即可启动:
npx create-sailor@latest my-app --preset=minimal --yes cd my-app && pnpm dev # → http://localhost:3000
minimal预设只生成apps/web+ IAM + 本地 Postgres,让黄金路径 能在本地 DB 上跑起来。之后再用nebutra add <provider>接入 Stripe / Clerk / Resend 等。
{{brand.name}} Sailor 是一个企业级、AI 原生的 SaaS 单体仓库架构,专为构建可治理的现代多租户平台而设计。它为 AI 网关、智能体工作流、计费、认证、合规和白标产品交付提供可落地的平台基线。
采用 Next.js 16、React 19、Prisma 7 和 Vercel AI SDK 构建,Sailor 把 AI 当作需要治理的运行时能力:供应商拓扑、模型路由、可观测性、租户隔离和合规钩子都属于平台基线。
{{repo.name}} 由 {{company.nameCN}}({{company.name}})维护。日常工程负责人是 Tseka Luk(@tsekaluk · legal@nebutra.com)。任何规模的团队用它构建商业产品都完全免费——付费档卖的是支持、SLA、赔偿和商标授权,而不是使用许可。详见下方 License 章节。
我们以 @nebutra/* 这个 npm scope 发布所有包,外加两个 CLI(nebutra 和 create-sailor)。发布流程通过 changesets 驱动,并以手动 workflow_dispatch 作为发版门槛;每次发布会生成 SBOM 验证(见 release.yml)。安全报告请走 SECURITY.md;商务/授权咨询请发 legal@nebutra.com。
Nebula • Nurture • Ultra • Future
- Nebula(云端聚合):整合数据与工具,沉淀为可用产品与服务。
- Nurture(孕育智能):借助自动化工具链与“数字员工”,持续孵化 AI 应用。
- Ultra(臻于至善):以工程可靠与价值交付为核心。
- Future(引领未来):让 AI 生产力普惠每个人。
AI 原生基础设施公司,构建可治理的产品平台基线
覆盖多租户 SaaS、智能体工作流、发布运营与全球化交付
真正长期的护城河不是一个模板,而是把持续变化的 AI 能力转化成可治理、可交付系统的能力。
AI 可以帮助做出演示,Sailor 聚焦更难的生产层:治理、安全、架构、可扩展性和收入运营。
目标不是在向导里逐个选择供应商,而是运营一个能跨供应商、区域、租户和合规边界演进的 AI 拓扑。
- 在加速度时代,技术壁垒难以恒久。真正的壁垒,是持续创新的想象力、对趋势的洞察力、对错误的敏捷纠错力,以及把想法更快落地的执行力。
- 保守决策看似稳妥,实则更激进:不改变,就是押注世界不变;而世界唯一不变的,是变化。
面向可治理的 AI 原生产品:Sailor 填补了「AI 帮我做出演示」和「这是一个可以运营、审计、计费和扩展的平台」之间的鸿沟。
|
|
| 前端 |
|
| UI / 设计 |
|
| 认证 |
|
| BFF 层 |
|
| 后端 (Python) |
|
| 数据库 |
|
| 缓存 / 限流 |
|
| 实时通信 |
|
| AI |
|
| 搜索 |
|
| 队列 |
|
| 存储 / 上传 |
|
| 通知 |
|
| Webhook |
|
| 短信 (国内) |
|
| 支付 |
|
| 邮件 |
|
| CMS / 文档 |
|
| 设计同步 |
|
| CDN / 安全 |
|
| 工作流 |
|
| 分析 |
|
| 可观测性 |
|
| 构建 / 部署 |
|
Sailor 是与 Provider 无关的:以下每个平台包都会从环境变量自动检测后端实现,客户切换 provider 无需改动应用代码。每个包都内置 in-memory 实现用于测试,并通过 tests/architecture/ 下的架构测试强制约束 TypeScript 契约。
| 能力 | 包 | 支持的 Provider(自动检测) |
|---|---|---|
| 身份认证 | @nebutra/auth | Clerk · Better Auth · Auth.js |
| 身份提供方 | @nebutra/oauth | OIDC (oidc-provider) · Redis 会话 |
| 权限 | @nebutra/permissions | CASL — RBAC + ABAC,Hono 中间件,React <Can /> |
| 多租户 | @nebutra/tenant | AsyncLocalStorage 上下文 · Prisma RLS 桥接 |
| 验证码 | @nebutra/captcha | Cloudflare Turnstile |
| 密钥保险库 | @nebutra/vault | AWS KMS 信封加密 · 本地 HKDF(开发) |
| 审计日志 | @nebutra/audit | 追加式哈希链 |
| 缓存 | @nebutra/cache | Upstash Redis · in-memory |
| 限流 | @nebutra/rate-limit | 滑动窗口 · 令牌桶(Upstash) |
| 队列 | @nebutra/queue | QStash · BullMQ · in-memory |
| 搜索 | @nebutra/search | Meilisearch · Typesense · Algolia |
| 存储 / 上传 | @nebutra/uploads | Cloudflare R2 · AWS S3 · Vercel Blob · 本地文件系统 |
| 通知 | @nebutra/notifications | Novu — 应用内 · 邮件 · 推送 · 短信 · 即时聊天 |
| Webhook | @nebutra/webhooks | Svix · 自定义 HMAC 投递 |
| 短信(国内) | @nebutra/sms | 阿里云 · 腾讯云 |
| 邮件 | @nebutra/email | Resend + React Email 模板 |
| 计费 | @nebutra/billing | Stripe — 订阅、用量、权益 |
| 用量计量 | @nebutra/metering | ClickHouse 实时聚合 |
| 事件总线 | @nebutra/event-bus | 多租户 Pub/Sub · Fan-out · Request-Reply |
| Saga 编排 | @nebutra/saga | 原生 TS 流程,自动回滚补偿 |
| 特性开关 | @nebutra/feature-flags | 数据库存储 + 环境变量覆盖 |
| 设计令牌 | @nebutra/design-sync | W3C DTCG ↔ Figma · Penpot · git-only |
| 状态聚合 | @nebutra/status | OpenStatus · Atlassian StatusPage |
{{repo.name}}/
├── apps/ # 用户面应用 (Next.js)
│ ├── landing/ # 营销官网 (nebutra.com)
│ ├── web/ # SaaS 主控台 (app.nebutra.com)
│ ├── studio/ # Sanity CMS (studio.nebutra.com)
│ ├── sailor-docs/ # 公开产品文档 (docs.nebutra.com)
│ ├── idp/ # 身份认证服务 (OAuth 2.0 / OIDC)
│ ├── storybook/ # 组件 Playground
│ ├── mail-preview/ # 邮件模板预览
│ ├── sleptons/ # Sleptons 配套应用
├── packages/ # 共享 TS 库(W3b 已分类)
│ ├── ai/ # 3 个 — agents、ai-providers、mcp
│ ├── commerce/ # 7 个 — billing、contracts、marketing、metering、license、legal、waitlist
│ ├── design/ # 7 个 — ui、tokens、brand、theme、icons、design-tokens、design-sync
│ ├── iam/ # 8 个 — auth、audit、vault、oauth、permissions、tenant、identity、captcha
│ ├── integrations/ # 11 个 — queue、search、email、notifications、storage、webhooks、cache、sms、uploads、event-bus、saga
│ ├── ops/ # 6 个 — cli、create-sailor、preset、sanity、supabase、china-compliance
│ └── platform/ # 13 个 — db、logger、rate-limit、feature-flags、gateway-core、errors、config、health、status、alerting、analytics、repositories、i18n
├── backends/ # 无 UI 后端(按语言拆分,参考 vercel/vercel)
│ ├── gateway/ # TypeScript / Hono — BFF、auth、租户、路由
│ └── python/ # FastAPI — 仅当 ML/批处理/专用库无法用 TS 时启用
│ ├── _shared/ # 跨服务原语(auth、db、queue 客户端)
│ └── ai/ # LLM、Embeddings、Agent 编排
├── infra/ # 基础设施(W2.2 按职责拆分)
│ ├── iac/ # terraform + k8s + ecs + cloudflare + railway
│ ├── runtime/ # nginx + docker + analytics + compose 文件
│ ├── data/ # database (RLS) + clickhouse (init + dbt)
│ └── ops/ # observability + 部署脚本
├── workflows/ # 事件驱动业务流(W2.3 抽离)
│ ├── inngest/ # Serverless 后台任务 + 定时
│ ├── n8n/ # 可视化工作流自动化
│ └── pusher/ # 实时消息粘合层
├── e2e/ # Playwright E2E 测试 (smoke / golden / sleptons)
├── tests/ # 架构不变量 + 压测 + UI 治理
└── docs/ # 架构文档
各组件均有独立 README,包含配置说明和 API 文档:
| 微服务 | AI |
| 公共包 | UI · Tokens · Marketing · DB · Cache · Rate Limit · Event Bus · Saga · MCP · Analytics |
| 设计文档 | |
| 基础设施 | Docker · Kubernetes · Terraform · Inngest · n8n · Pusher · 可观测性 |
新项目建议直接从 npm 创建,不需要先 clone 整个 monorepo 再裁剪:
# 创建新的 Sailor 项目
npx create-sailor@latest
npm create sailor@latest
pnpm create sailor@latest
bunx create-sailor@latest
# 运维已有的 Sailor 项目
npx nebutra --help
npm install -g nebutra| 包 | 用途 |
|---|---|
create-sailor |
创建新的 {{brand.name}} Sailor 项目,内置区域化默认值和拓扑优先的 AI 网关配置。 |
nebutra |
治理已有项目:功能注册表安装、AI 供应商治理、网关路由、Schema 和诊断。 |
nebutra.com 是 {{brand.name}} Sailor 的公开产品入口,也是我们自己 dogfooding 这套平台的地方。后续更多产品能力、商业授权、托管能力、发布工作流和基于本仓库构建的真实案例都会在官网持续更新。
| Node.js | v22+ |
| pnpm | v10.32+ |
| Python | 3.11+ (微服务需要) |
# 克隆仓库
git clone https://github.com/{{repo.full}}.git
cd {{repo.name}}
# 安装依赖
pnpm install
# 配置环境变量
cp .env.example .env
# 生成 Prisma 客户端并启动开发服务器
pnpm db:generate && pnpm dev| 命令 | 说明 |
|---|---|
pnpm dev |
启动所有应用(开发模式) |
pnpm build |
构建所有包(自动同步品牌资产) |
pnpm lint |
代码检查 |
pnpm typecheck |
类型检查 |
pnpm db:studio |
打开 Prisma Studio |
pnpm brand:sync |
同步品牌资产到各应用 |
pnpm brand:init |
初始化白标品牌 |
pnpm brand:apply |
应用自定义品牌 |
Fork 本仓库并自定义为你的品牌:
# 交互式设置向导
pnpm brand:init
# 将 logo 放入 brand.config/assets/
# 应用品牌
pnpm brand:apply详见 WHITELABEL.md。
我们欢迎所有贡献者!以下是参与方式:
| 报告 Bug | 提交 Issue |
| 功能建议 | 通过 Issue 提出 |
| 提交 PR | 添加功能或修复 Bug |
1. Fork 本仓库
2. 创建功能分支 (git checkout -b feat/amazing-feature)
3. 提交更改 (git commit -m 'feat: 添加精彩功能')
4. 推送分支 (git push origin feat/amazing-feature)
5. 发起 Pull Request
所有已发布的包目前都在 0.x 版本区间,公共 API 仍在收敛。按
SemVer §4,主版本号为零意味着
任何 0.x 发布都可能包含破坏性变更——在生产环境请精确锁定版本
("nebutra": "0.3.1"),不要用 caret 范围,等我们切到 1.0 之后再放开。
- 版本由 changesets 驱动。每个改动已发布包的 PR 都必须包含
.changeset/*.md声明 patch/minor/major 意图——CI 会强制这个 gate。 - 每个包的
CHANGELOG.md由changeset version生成并与版本号一同提交(例如packages/ops/cli/CHANGELOG.md)。 - Release 工作流是手动触发(
workflow_dispatch)——不会在 PR 合并后突然发版。我们会成批协调相关改动后才切版本。 - 1.0 之前的重大 API 改动(例如 CLI 命令重命名、包的目录重新分类)会先发 release candidate:
nebutra@0.4.0-rc.0落在nextdist-tag,浸泡 ≥ 1 周后才升为latest。安装 RC:npm i nebutra@next。 - npm 发布会附带 provenance attestation(一旦 npm registry 端启用了 trusted-publishing;工作流端已经接好——见
release.yml的NPM_CONFIG_PROVENANCE: "true")。验证已发布的 tarball:npm view <pkg> --json | jq .dist.attestations。
我们会以发布 1.0.0 来标志 API 稳定。在那之前,请把当前的 API 理解为
"形态可生产,细节仍在演进"。
用 {{repo.name}} 做商业产品完全免费:无费用、无授权密钥、无需注册、 无营收或人数门槛、无 Copyleft。
| 获取方式 | 许可证 | Copyleft | 费用 |
|---|---|---|---|
| 安装 npm 发布包 | MIT(@nebutra/*、nebutra、create-sailor) |
无 | 免费 |
用 create-sailor 脚手架 |
MIT | 无 | 免费 |
| clone / fork 本仓库 | FSL-1.1-ALv2(LICENSE),两年后转 Apache-2.0 | 无 | 免费 |
代码许可证唯一不允许的事:把它本身作为商业产品或服务提供给他人充当替代品。 用它造产品可以,卖它不行。 这条限制会过期——每个版本在发布满两年时 自动转为 Apache-2.0,且该授权是提前不可撤销地做出的。
商标是独立的——FSL 和 Apache-2.0 都不授予商标权。给自己的产品起一个无关的 名字不需要任何许可;使用 {{brand.name}} 名称或白牌化平台则需要商标授权 (见 TRADEMARK.md)。
付费档卖的不是使用权,而是代码许可证给不了的东西:支持承诺、响应 SLA、 赔偿、合规文件(DPA、安全材料、业务连续性承诺)以及商标授权。 Community $0 · Team $2,000/年 · Enterprise $30,000/年起——详见 LICENSE-COMMERCIAL.md。
版权归 {{company.nameCN}} 所有。
此前为 AGPL-3.0-only,并设有 Independent Developer 档和 $799/年 Startup 档。 两档已于 2026-07-26 撤销;此前已作出的授权不可撤销,不受影响。详见 docs/legal/license-history.md。
授权问题请联系 legal@nebutra.com · 授权 FAQ