4.6 KiB
智念AIGC平台部署说明
本文面向运维部署。推荐使用 Docker Compose,同一套编排会启动 Web 服务和任务 Worker。
服务器要求
- Linux 服务器
- Docker
- Docker Compose v2(
docker compose)或旧版docker-compose - 可访问外网供应商接口:火山 Visual、EvoLink、Seedance、OSS
一键部署
git clone <仓库地址>
cd NianAIGC
bash scripts/deploy.sh
脚本会自动:
- 从
.env.example创建.env.local(如果不存在) - 创建
.runtime/data、.runtime/uploads、.runtime/generated-results - 创建
.runtime/logs - 构建镜像
- 启动
zhinian-aigcWeb 服务 - 启动
zhinian-worker任务 Worker - 输出容器状态
默认访问:
http://服务器IP:3000
必填生产配置
部署前编辑 .env.local:
APP_PORT=3000
PORT=3000
HOSTNAME=0.0.0.0
NEXT_PUBLIC_APP_URL=https://你的域名
ZHINIAN_AUTH_REQUIRED=auto
ZHINIAN_AUTH_BASE_URL=https://<gateway-domain>/auth
ZHINIAN_AUTH_CLIENT_ID=customPC
ZHINIAN_AUTH_CLIENT_SECRET=请替换为认证中心客户端密钥
ZHINIAN_AUTH_SCOPE=server
ZHINIAN_AUTH_ISSUER=https://pig4cloud.com
ZHINIAN_AUTH_PASSWORD_ENC_KEY=
ZHINIAN_AUTH_SESSION_SECRET=请替换为强随机会话密钥
ZHINIAN_API_KEYS=partner-a:请替换为强随机key
ZHINIAN_INTERNAL_WORKER_TOKEN=请替换为强随机token
ZHINIAN_WEBHOOK_SECRET=请替换为webhook签名密钥
真实生成能力按需配置:
IMAGE_GENERATE_ENGINE=evolink
IMAGE_INPAINT_ENGINE=jimeng
EVOLINK_API_KEY=
VOLCENGINE_ACCESS_KEY_ID=
VOLCENGINE_SECRET_ACCESS_KEY=
SEEDANCE_API_KEY=
ALI_OSS_ENDPOINT=
ALI_OSS_BUCKET=
ALI_OSS_ACCESS_KEY_ID=
ALI_OSS_ACCESS_KEY_SECRET=
ALI_OSS_PUBLIC_BASE_URL=
如果不配置真实供应商密钥,mock 配置会保留本地验收能力,但生产对接应配置真实密钥。
认证中心客户端需要允许回调地址:
https://你的域名/api/auth/callback
如果使用登录页内的账号密码验证码方式,还需要确认 customPC 客户端支持 password 和 refresh_token grant。未加入 security.ignore-clients 时,验证码会通过 ${ZHINIAN_AUTH_BASE_URL}/code/image 获取。
常用运维命令
docker compose ps
docker compose logs -f zhinian-aigc
docker compose logs -f zhinian-worker
docker compose restart
docker compose down
Web 后台可在登录后访问:
https://你的域名/logs
日志默认写入 .runtime/logs/server-events.jsonl,用于查看 API 500 错误、Worker 任务异常、错误栈和请求路径。可通过环境变量 ZHINIAN_LOG_DIR 调整目录,通过 ZHINIAN_LOG_MAX_BYTES 调整单文件轮转大小。
更新部署:
git pull
bash scripts/deploy.sh
健康检查:
curl -f http://127.0.0.1:${APP_PORT:-3000}/api/health
OpenAPI:
curl http://127.0.0.1:${APP_PORT:-3000}/api/v1/openapi.json
数据持久化
Docker Compose 会挂载:
./.runtime:/app/.runtime
本地 JSON 数据层、上传文件和生成结果都会放在 .runtime/ 下。生产环境如果未启用 Supabase/Postgres,请定期备份该目录。
服务端日志也会放在 .runtime/logs/ 下,建议和运行时数据一起备份或接入服务器日志采集。
建议备份:
tar -czf zhinian-runtime-$(date +%Y%m%d%H%M%S).tar.gz .runtime
服务组成
zhinian-aigc:Next.js Web/API 服务,默认容器端口3000zhinian-worker:后台任务 Worker,负责提交供应商任务、轮询结果、导入资产和触发 Webhook
注意:只启动 Web 服务时,任务会停留在 queued 或 running,必须同时运行 Worker。
反向代理建议
Nginx 示例:
server {
listen 80;
server_name your-domain.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置反向代理后,将 .env.local 里的 NEXT_PUBLIC_APP_URL 设置成公网 HTTPS 地址。
验收清单
部署后执行:
curl -f https://你的域名/api/health
curl -H "Authorization: Bearer <API_KEY>" https://你的域名/api/v1/capabilities
curl https://你的域名/api/v1/openapi.json
确认:
- 未登录访问 Web 页面会跳转到
/auth/login - 登录后 Web 页面可访问
/api/health返回ok: true/logs可查看后台错误日志/api/v1/capabilities使用 API Key 可访问zhinian-worker日志持续输出claimed=...- OSS、EvoLink、火山、Seedance 密钥按业务需要配置完成