跳到主要内容

Docker 部署

本文档详细介绍如何使用 Docker 部署 UPage。

前置条件

在开始之前,请确保您的系统满足以下要求:

  • Docker 已安装(推荐 Docker 20.10.0 或更高版本)
  • 至少 2GB 可用内存
  • 至少 2GB 可用磁盘空间
  • 互联网连接(用于拉取 Docker 镜像和访问大模型 API)

安装 Docker

如果您的系统未安装 Docker,请参考Docker 官方文档进行安装。

使用 Docker 部署

拉取镜像

首先,拉取 UPage 的最新 Docker 镜像:

docker pull halohub/upage:latest

您也可以使用特定版本的镜像,例如:

docker pull halohub/upage:1.0.0

准备目录

创建必要的目录用于持久化数据,例如 ~/upage

mkdir -p ~/upage/data
mkdir -p ~/upage/logs
mkdir -p ~/upage/storage
提示

UPage 所有数据与日志均存储在此目录中,请妥善保管。

启动容器

使用以下命令启动 UPage 容器:

docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAI \
-e PROVIDER_BASE_URL=your-openai-api-base-url \
-e PROVIDER_API_KEY=your-openai-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ~/upage/data:/app/data \
-v ~/upage/logs:/app/logs \
-v ~/upage/storage:/app/storage \
halohub/upage:latest

容器管理

常用的容器管理命令:

# 停止容器
docker stop upage

# 启动容器
docker start upage

# 重启容器
docker restart upage

# 查看容器日志
docker logs upage

# 查看容器状态
docker ps -a | grep upage

环境变量配置

UPage 支持通过环境变量进行配置。以下是一些比较重要的环境变量,均可以使用 -e 参数在启动容器时设置:

提示

完整的配置请参考配置参考

基础配置

环境变量描述默认值
PORT服务监听端口3000
NODE_ENVNode.js 环境production
OPERATING_ENV运行环境production
LOG_LEVEL日志级别debug
USAGE_LOG_FILE是否开启文件日志true
MAX_UPLOAD_SIZE_MB附件上传的最大大小 (MB)5
STORAGE_DIR资源文件存储位置/app/storage

模型提供商配置

根据您选择的 AI 提供商,您还需要配置相应的 API 密钥和基础 URL,例如:

环境变量描述必填示例
LLM_PROVIDER默认 LLM 提供商OpenAI
PROVIDER_BASE_URLOpenAI 或者其他兼容 OpenAI 规范的 API 基础 URLhttps://your-api-base-url
PROVIDER_API_KEYOpenAI 或者其他兼容 OpenAI 规范的 API 密钥your-openai-api-key

大模型配置

环境变量描述必填示例
LLM_DEFAULT_MODEL生成页面所使用的主要模型gpt-4-turbo
LLM_MINOR_MODEL辅助页面生成所使用的次级模型gpt-3.5-turbo

升级 UPage

当有新版本发布时,您可以按照以下步骤升级 UPage:

# 拉取最新镜像
docker pull halohub/upage:latest

# 停止并删除旧容器
docker stop upage
docker rm upage

# 使用新镜像启动容器(使用与之前相同的环境变量和挂载)
docker run -d \
--name upage \
--restart unless-stopped \
-p 3000:3000 \
-e LLM_PROVIDER=OpenAI \
-e PROVIDER_BASE_URL=your-openai-api-base-url \
-e PROVIDER_API_KEY=your-openai-api-key \
-e LLM_DEFAULT_MODEL=your-default-model \
-e LLM_MINOR_MODEL=your-minor-model \
-v ~/upage/data:/app/data \
-v ~/upage/logs:/app/logs \
-v ~/upage/storage:/app/storage \
halohub/upage:latest

下一步