跳到正文
开源 · MIT · Deno 2 + Postgres

你的 SaaS 地基,已经搭好了。

Seed 是一个免费、MIT 许可的 SaaS 启动模板,内置登录和双重验证(2FA)、带角色的群组、按成员计费的 Stripe 订阅、实时同步、离线应用和管理后台。用 Docker Compose 部署到你租用的一台 Linux 服务器上即可。

无需注册。你会得到一个带示例数据的访客账号,数据每晚清空。 Seed 现在就能用,并且在公开开发中:看看目前有哪些功能可用。

$ gh repo create my-product --template spy4x/seed --private --clone$ cd my-product$ deno task init$ deno task dev
init 会生成 infra/envs/.env,并填好所有密钥。也可以直接让你的 AI 编程助手来做:Create my new product "Acme" from https://github.com/spy4x/seed and run it locally。
Seed Web 应用的笔记页面:搜索框、按标签和作者筛选、“我创建的”筛选和排序菜单,下方是一个群组的笔记列表,每条显示作者、标签、更新时间和创建时间,还有一个“新建笔记”按钮。
测试文件,覆盖各个应用和库,全部在 CI 中运行
324
许可证:无需账号,没有付费墙
MIT

你能得到什么

开发第一个功能之前要做的,都已经做好了

下面每一部分现在都能用,并且都在 CI 中测试过。Google 和 GitHub 登录以及 Stripe 计费需要你自己的密钥,所以在演示中是关闭的。

登录,已搞定

邮箱密码登录(含验证码)、重置密码、Google 和 GitHub 登录、通行密钥、邮件登录链接、访客账号,以及基于身份验证器应用的双重验证。所有会话都能查看,也能随时结束。

登录的工作原理
个人资料的安全页面:密码、“添加通行密钥”按钮、已开启的双重验证,以及已登录设备列表的开头部分。

按成员计费

按群组的 Stripe 订阅:有使用限制的免费版、按成员计费的付费套餐、试用期,以及银行卡扣款失败时的宽限期。所有者在每次邀请前都会先确认价格。

计费的工作原理
演示应用中一个示例群组的套餐,按演示用的示例价格显示:Pro 套餐及其续订日期,每月 €36.00,共 4 位成员,每人 €9.00,含所有者。

实时同步与离线

更改通过 WebSocket 同步到每个打开的标签页。应用可以安装,没有网络也能打开,写入操作会排队等待,遇到冲突时会提示你,而不是直接覆盖别人的内容。

实时同步和离线的工作原理
Seed 应用的笔记编辑器,正在修改标题;点击“保存”后,其他所有打开的窗口都会显示新标题。

从第一天起就支持群组

每个账号注册时都会获得一个群组。你可以邀请他人,分配从查看者到所有者的角色,转让所有权,并在 30 天内恢复已删除的群组。每个群组都有一个关键数据概览。

群组的工作原理
一个群组的成员列表,每位成员都标有角色,有一个邀请按钮,其中一位成员的菜单已打开:设为查看者、设为管理员、移出群组。

管理后台

运营人员可以查找用户、管理群组、退款以及检查系统健康状况。管理后台运行在独立的域名上;有风险的操作会先确认,每个操作都会记录在案。

参观管理后台

公开网站

就是本站:服务端渲染,关闭 JavaScript 也能正常使用,支持九种语言,价格来自你的套餐目录,还有法律页面和双重确认订阅的邮件简报。

网站包含哪些内容
全部功能,附截图和状态

运行在你租用的一台服务器上

一台服务器,一条 docker compose,没有意外账单。

Seed 可以运行在你租用的任何 Linux 服务器上。Compose 会启动 API、Worker、Web 应用、Postgres、Valkey,以及自动签发证书的 Traefik。指标和日志进入 VictoriaMetrics 和 VictoriaLogs,再用 Grafana 查看;备份容器每天保存一份加密的数据库副本。多个产品可以共用一台服务器。没有任何按请求计费的服务,所以流量突增也不会让你多花一分钱。

如果你想用 Serverless 函数或 Vercel,那 Seed 不适合你:它是为你自己掌控的服务器而设计的。

Web 应用Preact网站FreshAPIHono,运行在 Deno 上Postgres每一次更改Worker耗时的工作邮件、推送以及清理全部运行在一台服务器上,由 Traefik 统一入口,搭配 Valkey 和 Grafana

快速开始

四条命令,本地跑起来

你需要 Deno 2 和 Docker;GitHub CLI 可选。

init 会复制 env 文件,并生成所有密钥和 Web 推送密钥;dev 会启动 Traefik 和其他所有服务。然后打开 http://app.localhost。README 列出了每项配置和部署方法。

也可以直接让你的 AI 编程助手来做:Create my new product "Acme" from https://github.com/spy4x/seed and run it locally。

$ gh repo create my-product --template spy4x/seed --private --clone$ cd my-product$ deno task init$ deno task dev

如实说明

目前进展

Seed 现在就能用,并且在公开开发中。下面列出了哪些功能已经可用,哪些还没有。

目前可用

就绪
  • 注册、登录、邮箱验证、重置密码、Google 和 GitHub 登录、通行密钥、魔法链接、基于身份验证器应用的双重验证
  • 访客账号:一键试用应用,添加一种登录方式即可保留账号
  • 群组:成员、角色、邀请和所有权转让
  • 将群组导出为文件,或将文件导入为新群组
  • 在笔记中添加图片和 PDF 附件,容量以各套餐为准
  • 通过 Stripe 按成员计费,支持试用期
  • 头像、已登录设备列表、下载个人数据,以及可在 7 天内撤销的账号删除
  • 个人 API 令牌
  • 实时同步、离线应用和 Web 推送
  • Telegram 机器人:在聊天中接收通知,在一个文件里编写你自己的命令
  • 管理后台
  • Outbox Worker、邮件简报和本网站
  • 应用、管理后台和本网站支持九种语言:英语、俄语、西班牙语、德语、巴西葡萄牙语、阿拉伯语、法语、日语和简体中文

尚未完成

进行中
  • 上架 Play 商店的 Android 应用
  • 适用于 Windows、macOS 和 Linux 的桌面应用
在 GitHub 上关注进展

不是开发者?我用 Seed 帮你打造产品。

我是 Anton,Seed 的作者。创业者请我把想法变成一个真正上线、用户可以注册和付费的产品。注册、群组和支付都已经现成,你的预算可以全部花在让产品与众不同的地方。

了解合作方式和费用 (打开 antonshubin.com)

谁在开发 Seed

由一位工程师打造,用于真实的客户项目

我是 Anton Shubin,资深全栈工程师和技术负责人,2013 年起从事自由职业。Seed 是我为客户一遍遍重复搭建的基础设施,如今整合进了一个仓库。我用它交付付费 MVP,所以它一出问题就会被修好。如果你的产品还缺什么,欢迎提 issue 或直接写信给我。

Seed 有新动态时,收到一封简短的邮件

上线了什么、出了什么问题、开发中学到了什么。不发其他邮件,一键即可退订。

你需要先通过邮件确认。

常见问题

开始之前

不注册账号能试用吗?

可以。点击“体验在线演示”,就会用一个带示例数据的访客账号打开应用,不需要邮箱或密码。你可以添加登录方式,但演示数据仍然每晚清空。使用 Seed 本身完全不需要账号:直接从 GitHub 克隆即可。

Seed 真的免费吗?

是的。它采用 MIT 许可证:可以用于任意数量的产品,商用或非商用都行,也可以公开你的分支,无需任何账号。你只需为租用的一台服务器,以及你开启的服务(例如 Stripe 或邮件服务商)付费。

为什么选 Deno 和 Preact,而不是 Next.js?

它们基于 Web 标准(fetch、Request、Web Crypto、ES 模块),启动快、依赖少,所以需要更新的东西更少,出问题的地方也更少。如果你在 Next.js 生态里工作,Next.js 启动模板会更适合你;对比页面列出了一些不错的选择。

可以用来做客户项目吗?

可以。MIT 许可证允许这样做,我自己就是这么用的。你的客户也不需要单独获取许可。

可以用于生产环境吗?

“目前可用”中列出的部分都有 CI 测试:每个 pull request 都会运行登录、个人资料、笔记和群组的测试,每次合并后会运行完整的测试套件。Seed 现在就能用,并且还在持续完善;在依赖某个部分之前,请先查看状态列表。

一分钟看它跑起来

演示就是你第一天就能拿到的应用。无需注册即可打开:你的访客账号自带示例数据。