跳到正文

在一台服务器上自托管你的 SaaS,不用付云平台账单

最后更新于

Seed 运行在你租用的一台 Linux 服务器上,开发和生产环境都使用 Docker Compose,一条命令即可上线。你只需按书面步骤准备一次服务器,之后每次部署都只需这一条命令。

你会得到什么

  • Traefik 作为入口,自动签发证书
  • Postgres 和 Valkey 与应用一起运行
  • Garage(一个 S3 文件存储)用于存放笔记中的图片和 PDF 以及头像。上传通过签名链接进行,并按文件内容检查。照片(包括 HEIC)会被转换为体积小巧的 AVIF 和 WebP 版本,并移除位置等元数据
  • VictoriaMetrics、VictoriaLogs 和 Grafana,带告警
  • 可选的每日 restic 加密数据库备份,以及书面的恢复步骤
  • 推送版本标签时,由 CI 发布正式版镜像

工作原理

部署时通过 SSH 把项目复制到服务器,再用 Compose 启动;每次部署都会由一个一次性服务执行数据库迁移。Traefik 位于最前端,为每个域名向 Let's Encrypt 申请证书。

Postgres、Valkey、S3 文件存储、指标、日志以及带告警的仪表盘都与应用并行运行,多个产品还可以在同一个代理后面共用一台服务器。

$ deno task deploy Copying files... Copying infra/envs/.env.prod to infra/envs/.env... Creating web push keys if missing... Starting the app... Deploy completed.
已精简:省略了各步骤之间 rsync 和 Compose 的输出。
  • Traefik
  • Postgres
  • Valkey
  • VictoriaMetrics
  • VictoriaLogs
  • Grafana
  • Alertmanager
  • Garage file store
  • restic backups

常见问题

我需要 Kubernetes 吗?

不需要。在一台服务器上用 Docker Compose 就能运行整个产品,开发和生产环境都一样。

多个产品可以共用一台服务器吗?

可以。它们共用一个代理,各自保留自己的目录、数据库和数据;只让你同样信任的产品共用一台服务器。

有备份吗?

有。可选开启的每日加密 restic 数据库备份,并附有书面恢复步骤。

Seed 能在 Node 或 Bun 上运行吗?

暂不支持。Seed 目前运行在 Deno 上,让它能在 Deno、Node 和 Bun 上运行的迁移工作正在进行中(#623)。运行时计划详见功能页面。

一分钟看它跑起来

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

其他功能

登录

通行密钥、邮箱登录链接、Google、GitHub 和双重验证,无需认证服务。

进一步了解登录

群组和角色

带角色的群组(从查看者到所有者)、邀请和活动日志。

进一步了解群组和角色

计费

按成员计费的 Stripe 订阅,含免费版、试用期和宽限期。

进一步了解计费

所有功能 Seed 与其他方案的对比