在一台服务器上自托管你的 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.
- 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)。运行时计划详见功能页面。