用 Docker 和 Dokploy 自托管你的 SaaS

在你自己的服务器上运行 ShipAny 应用——构建 Docker 镜像(数据库类型在构建时确定)、直接运行,或通过开源的类 Vercel 面板 Dokploy 部署。

最后更新: 2026年10月8日

每个 ShipAny 项目都带有生产可用的 Dockerfile,可以运行在任何服务器或容器平台上。Dokploy 能在你自己的机器上提供类似 Vercel 的面板:基于 Git 的部署、域名和 HTTPS。

用 Docker 运行

ShipAny TanStack 的镜像基于 node:22-alpine 多阶段构建,以非 root 用户运行在 3000 端口。数据库类型在构建时确定:

docker build --build-arg DATABASE_PROVIDER=postgres -t my-app .
docker run -p 3000:3000 --env-file .env.production my-app

不用 Docker 的话,pnpm build 会生成独立的服务端产物,用 node .output/server/index.mjs 即可运行。

用 Dokploy 部署

  1. 准备一台服务器——4 核、8 GB 内存、Ubuntu 24.04 是比较从容的起步配置。
  2. 安装 Dokploy:curl -sSL https://dokploy.com/install.sh | sh,然后访问 http://<服务器IP>:3000,为面板绑定域名。
  3. 从私有 Git 仓库(或预先构建的镜像)创建应用,让 Dokploy 用项目自带的 Dockerfile 构建。
  4. 添加环境变量(DATABASE_URL、AUTH_SECRET、应用地址等),绑定域名并部署。

注意事项

  • 修改 DATABASE_PROVIDER 后要重新构建镜像——它在构建时就固定了。
  • 运行多个容器时请配置存储(R2/S3),本地上传的文件不会在实例之间共享。
  • 数据库和应用放在同一个内网里,不要把数据库端口暴露到公网。

相关阅读

更多集成

用 ShipAny 快速上线你的 AI SaaS

登录、支付、积分、多语言和管理后台都已内置——从可上线的模板开始,专注做你的产品。