前后端分离版本部署
部署 ImageFlow
ImageFlow 支持多种部署方式。这里我们将介绍使用 Docker Compose 进行前后端分离部署的方法。这种方式将后端 API 服务和前端 Web UI 分开运行,提供了更好的灵活性和可扩展性。
您可以选择使用预构建的 Docker 镜像或者从源代码自行构建。
1. 使用预构建镜像部署 (推荐)
这种方法最简单快捷,适用于快速启动或不想处理构建过程的用户。
前提条件:
- 已安装 Docker
- 已安装 Docker Compose
步骤:
-
下载编排文件: 获取
docker-compose-separate.yaml
文件。您可以从项目仓库下载,或直接复制以下内容保存为docker-compose-separate.yaml
: -
创建配置文件和目录: 在
docker-compose-separate.yaml
文件所在的目录下:- 创建一个
.env
文件用于存放敏感配置和环境变量。 - 创建一个
static/images
目录用于本地存储(如果STORAGE_TYPE=local
)。 - (可选) 创建一个
config
目录并放入自定义的config.yaml
(如果需要覆盖默认配置)。
- 创建一个
-
配置环境变量: 复制示例环境文件并进行编辑:
详细配置请参见 配置指南。
-
启动服务: 在包含
docker-compose-separate.yaml
和.env
文件的目录中运行: -
访问:
- 前端 UI:
http://<your_server_ip_or_domain>:3000
- 后端 API:
http://<your_server_ip_or_domain>:8686
(主要供前端调用)
- 前端 UI:
2. 从源代码构建部署
这种方法允许您自定义代码或使用最新开发版本。
前提条件:
- 已安装 Docker
- 已安装 Docker Compose
- 项目源代码 (包含
Dockerfile.backend
和Dockerfile.frontend
)
步骤:
-
获取源代码和编排文件: 克隆项目仓库或下载源代码,确保包含
Dockerfile.backend
,Dockerfile.frontend
和docker-compose-separate-build.yaml
文件。 -
创建配置文件和目录: 与使用预构建镜像类似,创建
.env
,static/images
, 和可选的config
目录。 -
配置环境变量: 复制示例环境文件并进行编辑:
详细配置请参见 配置指南。
-
构建并启动服务: 在项目根目录(包含
Dockerfile
文件和docker-compose-separate-build.yaml
)中运行:--build
参数会强制 Docker Compose 重新构建镜像。 -
访问: 与使用预构建镜像相同。
注意事项
- 安全性: 务必设置强
API_KEY
。不要将 Redis 端口6379
暴露给公网,除非有严格的防火墙和密码保护。 - 反向代理: 在生产环境中,强烈建议使用 Nginx 或 Caddy 等反向代理来处理 TLS 加密 (HTTPS)、域名绑定、请求路由和负载均衡。前端可以直接通过域名访问,反向代理将请求转发到后端的
http://localhost:8686
。同时,应配置CUSTOM_DOMAIN
环境变量。 - 环境变量: Docker Compose 会自动加载同目录下
.env
文件中的环境变量。这是配置敏感信息的推荐方式。 - 存储: 确保
volumes
中映射的宿主机目录 (./static/images
) 具有正确的读写权限。如果使用 S3,请确保 S3 凭证和配置正确。 - 前端 API URL:
NEXT_PUBLIC_API_URL
是前端应用在浏览器中调用后端 API 时使用的地址。它必须是浏览器可访问的地址。如果使用docker-compose-separate-build.yaml
构建,Dockerfile 会将此变量构建到前端代码中,因此修改.env
后需要重新构建前端镜像 (docker-compose -f docker-compose-separate-build.yaml build frontend
) 并重启服务。