Docker 部署
在独立远程主机上从源码构建并启动 Infinite Canvas
Docker 部署
下面的命令用于新的开发或自托管环境,不用于更新 ic.xshow.live。在远程 Linux 主机执行;本地 Mac 不运行此项目的 Compose、构建或长任务。
准备
安装 Docker Engine、Compose 插件和 Git,确认主机有足够空间容纳 PostgreSQL 数据卷、镜像及视频任务临时文件。克隆本仓库后,复制示例环境文件并填写必需值:
git clone https://github.com/GZ-AI-Native-Dev/infinite-canvas.git
cd infinite-canvas
cp .env.example .env
chmod 600 .env
# 编辑 .env:至少填写 POSTGRES_PASSWORD、AUTH_USERNAME、AUTH_PASSWORD、
# AUTH_SECRET、VIDEO_DATASET_SERVICE_TOKEN、MEDIA_WORKER_INTERNAL_TOKEN,
# 以及 docker compose config 报告的其他必需值。
docker compose config --quiet.env、proxy/models.env 和 proxy/oss.env 仅留在运行主机,不提交 Git。供应商模型密钥及 OSS 配置按各自的 .env.example 填写;不应从其他项目复制数据库或密钥。默认 Docker 栈使用项目专属的 infinite_canvas PostgreSQL 数据库和命名卷,不发布数据库端口。
构建与启动
docker compose up -d --build
docker compose ps
curl -fsS http://127.0.0.1:8001/v1/live
curl -fsS http://127.0.0.1:8010/readyzWeb 默认绑定主机回环地址 127.0.0.1:3000;从其他设备访问需单独配置 HTTPS 反向代理,不要直接把数据库或服务诊断端口暴露到公网。查看单项服务日志使用 docker compose logs --tail=100 SERVICE。/v1/live 只证明代理进程在线;模型是否可用还需检查 /v1/ready 和实际任务输出。
更新与数据保护
开发环境可在确认新提交和配置后重新执行 docker compose up -d --build SERVICE。仅停止容器可用 docker compose down;不要使用 down -v、prune 或清理数据库卷。升级数据库结构前先备份本项目的数据卷并运行迁移,记录旧镜像/提交以便回滚。
docker-compose.local.yml 是同一服务图的兼容入口,但 Compose 项目名和数据库卷与根入口不同,不应在同一端口上并行启动。docker-compose.deploy.yml 属于历史数据卷兼容入口;在使用它之前必须先核对原有 external 卷,详情见源码开发文档。
正式环境
ic.xshow.live 位于 ecs110-us,使用独立 Docker daemon 和已验证的完整源码 SHA/不可变镜像。正式发布必须按生产部署文档执行窄服务更新、健康检查和回滚准备,不能把上面的开发栈命令直接用于生产。