TinyShip 部署技能是一套面向 TinyShip 项目的生产环境部署指南,用于在用户提出“deploy”“go to production”“deploy to…”等部署需求时,引导完成从平台选择到部署后验证的完整流程。
【用途】 该技能的核心用途是帮助用户将 TinyShip 部署到生产环境,并根据不同部署目标提供对应的操作步骤。
【主要能力与平台选择】 技能首先会询问用户偏好的部署目标,可选平台包括:
- Docker:适合自托管、需要完全控制的场景,支持全部三种框架,可使用 Docker Compose 或单独构建镜像。
- Vercel:适合 Next.js 项目,零配置,框架支持为 Next.js(推荐)。
- Cloudflare Workers:用于边缘部署、全球化场景,仅支持 TanStack Start,使用 D1 数据库和 Wrangler CLI,并需参考 apps/tanstack-app/CF-NOTES.md 了解已知问题。
- VPS(PM2 + Nginx):适合传统托管,支持全部三种框架。 确定平台后,技能会读取对应的参考文件并按照步骤执行。
【部署前检查清单(所有平台)】 部署前需确保:生产数据库就绪(推荐 PostgreSQL);设置生产环境变量,包括 APP_BASE_URL(生产域名,如 https://app.example.com)、BETTER_AUTH_URL(与 APP_BASE_URL 相同)、BETTER_AUTH_SECRET(强随机密钥,可用 openssl rand -hex 32 生成)、DATABASE_URL(生产数据库连接串);更新 OAuth 重定向 URI 到生产域名;更新支付 Webhook URL 到生产域名;对生产数据库执行迁移,命令为 pnpm db:push。
【各平台使用方式】
- Docker:可通过 docker compose --profile next up -d 启动(也可使用 --profile nuxt 或 --profile tanstack),或使用 docker build -f apps/next-app/Dockerfile -t tinyship . 构建单个镜像。详细步骤见 references/docker-deploy.md。
- Vercel:将代码推送到 GitHub,在 Vercel Dashboard 导入项目,将根目录设置为 apps/next-app,配置环境变量后部署。详细步骤见 references/vercel-deploy.md。
- Cloudflare Workers:仅适用于 TanStack Start,使用 D1 数据库与 Wrangler CLI。详细步骤见 references/cloudflare-deploy.md,已知问题见 apps/tanstack-app/CF-NOTES.md。
- VPS(PM2 + Nginx):构建应用(pnpm build:next,或 nuxt/tanstack),安装 PM2(npm install -g pm2),用 PM2 启动(pm2 start .output/server/index.mjs --name tinyship),配置 Nginx 反向代理到 7001 端口,使用 Let's Encrypt 配置 SSL。详细步骤见仓库内 docs/user-guide/deployment/traditional.md。
【部署后操作】 部署后建议:验证健康检查(curl https://yourdomain.com/api/health);测试登录流程;更新所有提供方的 OAuth 重定向 URI;更新支付 Webhook URL;若配置了支付,进行一笔测试支付;设置监控与告警。
【参考文件】 TinyShip 仓库中包含多个参考文件:docs/user-guide/deployment/overview.md(部署文档索引)、docs/user-guide/deployment/docker.md(Docker 部署指南)、docs/user-guide/deployment/cloud.md(云平台指南)、docs/user-guide/deployment/cloudflare-workers.md(CF Workers 指南)、docs/user-guide/deployment/traditional.md(VPS/PM2 指南)、docker-compose.yml(Docker Compose 配置)、apps/tanstack-app/CF-NOTES.md(Cloudflare Workers 注意事项)、apps/tanstack-app/wrangler.jsonc(Wrangler 配置)。
【限制】 Cloudflare Workers 部署仅适用于 TanStack Start,且使用 D1 数据库。其他平台的具体限制、收费信息与价格暂未提供。