ed86bfe9ae
- 更新 Agent API 端点文档 - 更新 SSE 事件与输入输出文档 - 新增 deploy/.env.prod.example 配置模板
Production Deploy Package
本目录是单机 docker compose 的生产交付包,架构为:
- 应用层:
litellm + web + worker-critical + worker-default + worker-bulk + init-job - 中间件:
redis - 数据与认证:云 Supabase(通过环境变量访问)
- 反向代理:由服务器侧 nginx 托管(不在本目录编排)
交付物
deploy/build-prod-image.sh:构建并导出生产镜像。deploy/docker-compose.prod.yml:生产 Docker Compose 编排。deploy/.env.prod.example:生产环境变量模板。deploy/README.md:部署说明书。
安全基线
deploy/.env.prod.example仅作为模板,真实密钥请在服务器上填写到deploy/.env.prod,不要提交仓库。- Redis 密码必填;为空时容器会启动失败。
- 后端镜像默认使用非 root 用户运行。
- 容器间通信仅走 Docker 内网(
redis、litellm服务名)。
目录结构
deploy/
├── build-prod-image.sh
├── docker-compose.prod.yml
├── .env.prod.example
└── README.md
一次性交付:构建生产镜像
在仓库根目录执行:
bash deploy/build-prod-image.sh
成功后会产出:
- 镜像名:
social-app-backend:prod(可用SOCIAL_BACKEND_IMAGE覆盖) - 归档文件:
deploy/social-app-backend-prod.tar.gz
如果你要把镜像拷贝到另一台服务器,传输该 .tar.gz 后执行:
gunzip -c social-app-backend-prod.tar.gz | docker load
启动流程(生产)
1) 检查环境变量
先创建生产环境变量文件:
cp deploy/.env.prod.example deploy/.env.prod
确认 deploy/.env.prod 至少包含以下关键变量(云 Supabase 与数据库连接):
SOCIAL_SUPABASE__PUBLIC_URLSOCIAL_SUPABASE__ANON_KEYSOCIAL_SUPABASE__SERVICE_ROLE_KEYSOCIAL_SUPABASE__JWT_SECRETSOCIAL_DATABASE__HOSTSOCIAL_DATABASE__PORTSOCIAL_DATABASE__NAMESOCIAL_DATABASE__USERSOCIAL_DATABASE__PASSWORDSOCIAL_REDIS__PASSWORD
说明:
- 容器内通信统一使用 Docker 内网:
SOCIAL_REDIS__HOST=redis、SOCIAL_LITELLM__HOST=litellm。 SOCIAL_WEB__HOST/SOCIAL_LITELLM__BIND_HOST是容器内监听地址,生产建议保持0.0.0.0。
2) 启动常驻服务
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml up -d redis litellm web worker-critical worker-default worker-bulk
3) 执行一次性 bootstrap
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml run --rm init-job
4) 查看状态与日志
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml ps
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml logs -f web
停止与重启
停止:
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml down
重启:
docker compose --env-file deploy/.env.prod -f deploy/docker-compose.prod.yml up -d
nginx 对接建议
- 反向代理到
127.0.0.1:${SOCIAL_WEB__PORT}(默认5775)。 - 仅开放 nginx 对外端口;应用容器仅发布到本机回环地址。
- 如果 nginx 运行在宿主机,
web需要保留127.0.0.1:host_port:container_port端口映射。 - 如果 nginx 也运行在 Docker 同网络内,可以移除
web.ports,改为容器内反向代理(例如proxy_pass http://web:5775)。
已知约束
- LiteLLM 会在容器启动时动态生成
/tmp/litellm-proxy-config.yaml,依赖SOCIAL_LLM__PROVIDER_KEYS__*已配置。 init-job为一次性任务,不长期驻留。