--- title: Docker 部署 description: 使用 Docker Compose 部署无限画布 --- # Docker 部署 如果你希望在自己的机器或服务器上运行项目,可以直接使用 Docker Compose。 ## 使用发布镜像 ```bash git clone git@github.com:basketikun/infinite-canvas.git cd infinite-canvas docker compose up -d ``` 启动后访问: ```text http://localhost:3000 ``` ## 本地构建镜像 如果需要基于当前源码构建镜像: ```bash docker compose -f docker-compose.local.yml up -d --build ``` ## 文档站镜像 文档站位于 `docs/` 目录,按带服务端能力的 Next.js standalone 应用单独构建,不打进主应用镜像。 使用发布镜像: ```bash cd docs docker compose up -d ``` 基于当前源码本地构建: ```bash cd docs docker compose -f docker-compose.local.yml up -d --build ``` ## 数据说明 当前主应用镜像只启动 Next.js。画布、我的素材、生成记录和 AI API Key 默认保存在浏览器本地;第三方提示词由浏览器前端直连拉取,不需要额外挂载数据目录。 ## 统计分析(可选) 项目**默认不接入任何统计**:不设置下列环境变量时,页面不会加载任何统计脚本,也不会发送任何外部请求。你在自己的部署上想查看流量时,设置对应环境变量即可,无需修改代码或重新构建镜像——镜像启动时会据此生成运行期配置。 统计按「每家一个独立变量」配置:**填了谁就启用谁,可同时启用多家**(例如 GA4 + 百度一起开)。仅支持 GA4 与百度,两者都只接受 ID,脚本地址由代码固定拼接,不接受任意脚本地址或内联 JS。 | 变量 | 说明 | | --- | --- | | `ANALYTICS_GA4_ID` | Google Analytics 4 衡量 ID(`G-XXXX`) | | `ANALYTICS_BAIDU_ID` | 百度统计站点 ID(`hm.js?` 后面那串 hash) | 在 `docker-compose.yml` 的 `environment` 中配置(文件内已附注释示例),下例同时启用 GA4 与百度: ```yaml services: app: image: ghcr.io/basketikun/infinite-canvas:latest ports: - "3000:3000" environment: ANALYTICS_GA4_ID: G-XXXXXXXXXX ANALYTICS_BAIDU_ID: e8263761cc5c32f5f7a855b8203b965a ``` 或使用 `docker run`: ```bash docker run -d -p 3000:3000 \ -e ANALYTICS_GA4_ID=G-XXXXXXXXXX \ -e ANALYTICS_BAIDU_ID=e8263761cc5c32f5f7a855b8203b965a \ ghcr.io/basketikun/infinite-canvas:latest ``` 单页应用的路由切换会自动向所有已启用的统计上报 pageview。 请只在你自己的站点上配置统计 ID,不要把 ID 提交进仓库;fork 或自托管本项目的用户默认不会产生任何统计。