ShipAny Docs

部署

Vercel

标准 Next.js 流程——在 Vercel 控制台导入仓库,配置环境变量(必填项见配置说明)后部署。数据库使用云端服务(PostgreSQL / MySQL / Turso),迁移单独执行:

pnpm db:generate && pnpm db:migrate

Docker

仓库自带多阶段 Dockerfile(node:22-alpine、Next.js standalone 输出、端口 3000):

docker build -t my-app .
docker run -p 3000:3000 --env-file .env.production my-app

DATABASE_PROVIDER构建时固化——schema 模板在镜像构建阶段选定。如需 PostgreSQL:

docker build --build-arg DATABASE_PROVIDER=postgres -t my-app .

Cloudflare Workers

wrangler.jsonc 已预配 nodejs_compatD1 数据库绑定:

wrangler.jsonc
{
  "name": "shipany-next",
  "compatibility_flags": ["nodejs_compat"],
  "vars": { "DATABASE_PROVIDER": "d1" },
  "d1_databases": [
    {
      "binding": "DB",
      "database_name": "shipany-next",
      "database_id": "...",
      "migrations_dir": "drizzle"
    }
  ]
}
npx wrangler d1 create shipany-next   # 把 database_id 填回 wrangler.jsonc
pnpm db:generate                      # D1 从 ./drizzle 目录应用迁移
npx wrangler deploy

Workers 平台注意事项:

  • TCP 连接不能跨请求复用——Postgres/MySQL 每个请求新建连接(连接池建议用 Hyperdrive)
  • D1 的事务是模拟实现,并非真实事务