Skip to content

Latest commit

 

History

History
815 lines (719 loc) · 40 KB

File metadata and controls

815 lines (719 loc) · 40 KB
English | 简体中文 | 日本語
{{brand.name}}

开源的 AI 原生 SaaS 平台基线

面向 AI 网关、计费、认证、合规与白标交付的可治理多租户产品基础设施。


官网 · 简介 · 技术栈 · 快速开始 · 贡献


GitHub Stars GitHub Forks Repository License npm Package License

OpenSSF Scorecard Socket Security npm: nebutra npm: create-sailor

X

Discord



License 一览 —— 用它做商业产品完全免费:无费用、无授权密钥、 无需注册、无 Copyleft。npm 发布包是 MIT;本仓库是 FSL-1.1-ALv2, 除「售卖 Sailor 的替代品」外的一切用途都允许,且每个版本在发布两年后 自动转为 Apache-2.0。付费档卖的是支持、SLA、赔偿和商标授权, 从不是软件的使用权。详见下方 License 章节、 LICENSE-COMMERCIAL.mddocs/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(nebutracreate-sailor)。发布流程通过 changesets 驱动,并以手动 workflow_dispatch 作为发版门槛;每次发布会生成 SBOM 验证(见 release.yml)。安全报告请走 SECURITY.md;商务/授权咨询请发 legal@nebutra.com

品牌愿景

Nebula • Nurture • Ultra • Future

  • Nebula(云端聚合):整合数据与工具,沉淀为可用产品与服务。
  • Nurture(孕育智能):借助自动化工具链与“数字员工”,持续孵化 AI 应用。
  • Ultra(臻于至善):以工程可靠与价值交付为核心。
  • Future(引领未来):让 AI 生产力普惠每个人。

关于公司

{{brand.name}} Intelligence

{{company.nameCN}}

AI 原生基础设施公司,构建可治理的产品平台基线
覆盖多租户 SaaS、智能体工作流、发布运营与全球化交付

真正长期的护城河不是一个模板,而是把持续变化的 AI 能力转化成可治理、可交付系统的能力。

AI 可以帮助做出演示,Sailor 聚焦更难的生产层:治理、安全、架构、可扩展性和收入运营。

目标不是在向导里逐个选择供应商,而是运营一个能跨供应商、区域、租户和合规边界演进的 AI 拓扑。


🚀

软件出海
Day 1 面向全球市场

🤖

AI 原生架构
LLM · Multi-Agent · MCP

💼

平台治理
拓扑 · 契约 · CI

🦄

发布基础设施
认证 · 计费 · AI 网关

愿景宣言(Manifesto)

  • 在加速度时代,技术壁垒难以恒久。真正的壁垒,是持续创新的想象力、对趋势的洞察力、对错误的敏捷纠错力,以及把想法更快落地的执行力。
  • 保守决策看似稳妥,实则更激进:不改变,就是押注世界不变;而世界唯一不变的,是变化。

为什么选择 Sailor?

面向可治理的 AI 原生产品:Sailor 填补了「AI 帮我做出演示」和「这是一个可以运营、审计、计费和扩展的平台」之间的鸿沟。

特性 说明
🚀 生产就绪 企业部署验证的架构模式
🤖 AI 原生 LLM・Embeddings・RAG・MCP Agent
🏢 多租户 RLS・租户隔离・租户定制
现代技术栈 Next.js 16・React 19・TypeScript 5.9
💳 计费内置 Stripe・用量计量・功能权限
特性 说明
📋 合规基础设施 GDPR/CCPA・Cookie 同意
🔐 安全优先 WAF・RLS・提示注入控制
🌍 全球化 i18n・CDN・边缘缓存
👤 运营就绪 多智能体・自动化 CI/CD
🚢 发布就绪 演示 → 产品 → 收入

亮点

AI
AI 原生
内置 LLM、向量检索、MCP Agents,以及高级的 Nebutra UI 聊天体验。
Tenants
多租户为先
租户上下文、RLS、缓存与限流按租户隔离。
Enterprise
企业级工程
Cloudflare WAF/R2、Inngest 工作流、Sentry/Otel、Vercel 部署。
Workflows
计费与变现
数据库驱动计划、Stripe 计费、用量计量、功能门控。
Security
安全与合规
RLS、WAF、Turnstile、GDPR/CCPA、Cookie 同意。
Toolkit
营销 UI 套件
Hero、Features、Pricing、Testimonials 等转化优化组件。
Architecture
自动化架构治理
内置 vitest.arch 边界测试与严格的语义化 Token 校验。
CSS
零运行时 CSS
纯 CSS 变量作为 SSOT,彻底抛弃 CSS-in-JS 性能损耗。
Docker
按需模块化 DX
配置文件隔离,本地开发仅需按需启动核心微服务。
AI Agent
自带商业化 MCP 网关
基于订阅计划的 Model Context Protocol 访问控制与审计额度。
Saga
分布式 Saga 编排器
纯 TypeScript 编排机制,自带事务失败自动回滚与补偿。
Event Bus
多租户事件总线隔离
强制 tenantId 隔离,原生支持异步广播与同步等待流。
Monitoring
多端监控集成网关
单节点并发检测 9 个微服务及组件,提供 OpenStatus 与 Atlassian Statuspage 的标准化遥测。

技术栈

前端 Next.js React TypeScript Tailwind Storybook
UI / 设计 Radix UI HeroUI Nebutra UI Geist Icons Inter JetBrains Mono DTCG Tokens
认证 Clerk Better Auth Auth.js OIDC Multi-tenant
BFF 层 Hono Prisma Zod
后端 (Python) FastAPI Uvicorn Pydantic Python
数据库 Supabase PostgreSQL pgvector ClickHouse Realtime RLS
缓存 / 限流 Upstash Sliding Window Token Bucket
实时通信 Pusher Soketi Supabase Realtime
AI Vercel AI AI Gateway OpenRouter OpenAI Anthropic Google AI DeepSeek Moonshot MCP 30+ providers
搜索 Meilisearch Typesense Algolia
队列 QStash BullMQ
存储 / 上传 R2 S3 Vercel Blob Multipart Presigned URLs
通知 Novu In-app Email Push SMS
Webhook Svix HMAC Retry + DLQ
短信 (国内) Aliyun Tencent
支付 Stripe Metering Entitlements
邮件 Resend React Email
CMS / 文档 Sanity Fumadocs Mintlify
设计同步 Figma Penpot
CDN / 安全 Cloudflare WAF Turnstile CASL Vault
工作流 Inngest n8n Saga
分析 Dub Link Attribution Conversions
可观测性 Sentry OpenTelemetry OpenStatus
构建 / 部署 Vercel Turborepo pnpm Biome

平台能力

Sailor 是与 Provider 无关的:以下每个平台包都会从环境变量自动检测后端实现,客户切换 provider 无需改动应用代码。每个包都内置 in-memory 实现用于测试,并通过 tests/architecture/ 下的架构测试强制约束 TypeScript 契约。

能力支持的 Provider(自动检测)
身份认证@nebutra/authClerk · Better Auth · Auth.js
身份提供方@nebutra/oauthOIDC (oidc-provider) · Redis 会话
权限@nebutra/permissionsCASL — RBAC + ABAC,Hono 中间件,React <Can />
多租户@nebutra/tenantAsyncLocalStorage 上下文 · Prisma RLS 桥接
验证码@nebutra/captchaCloudflare Turnstile
密钥保险库@nebutra/vaultAWS KMS 信封加密 · 本地 HKDF(开发)
审计日志@nebutra/audit追加式哈希链
缓存@nebutra/cacheUpstash Redis · in-memory
限流@nebutra/rate-limit滑动窗口 · 令牌桶(Upstash)
队列@nebutra/queueQStash · BullMQ · in-memory
搜索@nebutra/searchMeilisearch · Typesense · Algolia
存储 / 上传@nebutra/uploadsCloudflare R2 · AWS S3 · Vercel Blob · 本地文件系统
通知@nebutra/notificationsNovu — 应用内 · 邮件 · 推送 · 短信 · 即时聊天
Webhook@nebutra/webhooksSvix · 自定义 HMAC 投递
短信(国内)@nebutra/sms阿里云 · 腾讯云
邮件@nebutra/emailResend + React Email 模板
计费@nebutra/billingStripe — 订阅、用量、权益
用量计量@nebutra/meteringClickHouse 实时聚合
事件总线@nebutra/event-bus多租户 Pub/Sub · Fan-out · Request-Reply
Saga 编排@nebutra/saga原生 TS 流程,自动回滚补偿
特性开关@nebutra/feature-flags数据库存储 + 环境变量覆盖
设计令牌@nebutra/design-syncW3C DTCG ↔ Figma · Penpot · git-only
状态聚合@nebutra/statusOpenStatus · 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 · 可观测性

CLI 与官网

通过 npm 使用 CLI

新项目建议直接从 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

nebutra.com 是 {{brand.name}} Sailor 的公开产品入口,也是我们自己 dogfooding 这套平台的地方。后续更多产品能力、商业授权、托管能力、发布工作流和基于本仓库构建的真实案例都会在官网持续更新。


快速开始

环境要求

Node.jsv22+
pnpmv10.32+
Python3.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.mdchangeset version 生成并与版本号一同提交(例如 packages/ops/cli/CHANGELOG.md)。
  • Release 工作流是手动触发workflow_dispatch)——不会在 PR 合并后突然发版。我们会成批协调相关改动后才切版本。
  • 1.0 之前的重大 API 改动(例如 CLI 命令重命名、包的目录重新分类)会先发 release candidatenebutra@0.4.0-rc.0 落在 next dist-tag,浸泡 ≥ 1 周后才升为 latest。安装 RC:npm i nebutra@next
  • npm 发布会附带 provenance attestation(一旦 npm registry 端启用了 trusted-publishing;工作流端已经接好——见 release.ymlNPM_CONFIG_PROVENANCE: "true")。验证已发布的 tarball:npm view <pkg> --json | jq .dist.attestations

我们会以发布 1.0.0 来标志 API 稳定。在那之前,请把当前的 API 理解为 "形态可生产,细节仍在演进"。


许可证

用 {{repo.name}} 做商业产品完全免费:无费用、无授权密钥、无需注册、 无营收或人数门槛、无 Copyleft。

获取方式 许可证 Copyleft 费用
安装 npm 发布包 MIT@nebutra/*nebutracreate-sailor 免费
create-sailor 脚手架 MIT 免费
clone / fork 本仓库 FSL-1.1-ALv2LICENSE),两年后转 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




{{brand.name}}

每一次上线,都是增长在场。

出品 {{brand.name}} Intelligence · © 2024-至今 {{company.nameCN}}


官网

X

Discord

联系我们