部署
部署概览
如何部署 Makeugcads — 选择本地开发或生产环境
Makeugcads 是一个 pnpm monorepo,生产部署由持久运行服务、一次性部署任务和按环境选择的 PostgreSQL 组成。
服务组成
| 类型 | 服务 | 镜像 / 来源 | 端口 | 说明 |
|---|---|---|---|---|
| 持久服务 | web | ghcr.io/chenhaonan-eth/ugcad-web:<tag> | 3000→3000 | 前端面板 + API 路由 |
| 持久服务 | agents | ghcr.io/chenhaonan-eth/ugcad-agents:<tag> | 8000(内部) | LangGraph API 服务 |
| 持久服务 | redis | redis:7-alpine | 6379(内部) | 缓存与任务队列 |
| 数据库 | PostgreSQL | Dokploy Databases(生产)/ legacy-postgres profile(本地或短期回滚) | 5432(内部) | 业务库通过 DATABASE_URL,LangGraph runtime 通过 LANGGRAPH_DATABASE_URL |
| 一次性任务 | migrations | ghcr.io/chenhaonan-eth/ugcad-migrations:<tag> | 无 | 按 SQL migration chain 初始化或演进业务 schema |
| 一次性任务 | rbac-init | ghcr.io/chenhaonan-eth/ugcad-rbac-init:<tag> | 无 | 在 migration 完成后初始化 RBAC 基础数据 |
部署方式
本地开发
使用 Docker Compose 在本地运行完整服务栈。需要内置 PostgreSQL 时显式启用 legacy-postgres profile。
生产环境
使用 Dokploy 部署到自有 VPS。Dokploy 是一个自托管的 PaaS,支持 Docker Compose 服务管理、自动 HTTPS、滚动部署和环境变量管理。生产 PostgreSQL 推荐使用 Dokploy Databases,并通过标准 PostgreSQL URL 注入到 Compose 服务。
必填环境变量
生产 Dokploy 路径需要配置以下密钥和连接信息:
| 变量名 | 说明 | 生成方式 |
|---|---|---|
DATABASE_URL | 业务 PostgreSQL logical database URL | 从 Dokploy Databases 复制 |
LANGGRAPH_DATABASE_URL | LangGraph runtime PostgreSQL logical database URL | 从 Dokploy Databases 复制 |
REDIS_PASSWORD | Redis 密码 | openssl rand -hex 20 |
AUTH_SECRET | NextAuth 签名密钥(≥32 字符) | openssl rand -base64 32 |
AGENTS_SHARED_SECRET | 内部服务认证 token | openssl rand -hex 20 |
OPENAI_API_KEY | LLM 服务商 API 密钥 | sk-... |
NEXT_PUBLIC_APP_URL | Web 应用的公开 URL | https://yourdomain.com |