Chatbox 是一款开源的跨平台 AI 聊天客户端,核心功能是聚合管理多个 AI 模型,并提供更高效、隐私可控的对话体验。
Chatbox 默认支持桌面端 Electron 应用,在构建纯 web 的 docker 容器时,需要自定义构建过程。
最近我因为构建AI实验室的需要,希望构建 Chatbox 的纯web的docker镜像,然后部署在服务器上,方便大家使用。
这个过程比较艰辛,希望它能让您少走弯路:)
Chatbox 简介
- 核心定位与优势
Chatbox 并非独立的 AI 模型,而是一个 “AI 对话管理工具”。它的核心价值在于解决用户同时使用多个 AI 服务时的痛点。
- 多模型聚合:支持对接 OpenAI(GPT-3.5/4)、Anthropic(Claude)、国内的通义千问、豆包等主流模型,无需在多个 APP 或网页间切换。
- 隐私优先:对话数据默认存储在本地设备,而非第三方服务器,降低隐私泄露风险,适合对数据安全敏感的用户。
- 跨平台使用:提供 Windows、macOS、Linux 三个系统的客户端,且支持网页版,不同设备可同步对话记录(需手动配置)。
- 关键功能特点
除了基础的聊天功能,Chatbox 还包含提升效率的进阶设计:
- 对话管理:支持对话标签分类、搜索历史对话、导出对话记录(如 Markdown、JSON 格式),方便整理和复用信息。
- Prompt 优化:内置 Prompt 模板库,用户可快速调用预设指令(如 “总结文本”“翻译”),也可自定义保存常用 Prompt。
- 模型参数调节:允许手动调整 AI 模型的温度(Temperature)、最大 tokens 等参数,适配不同场景(如创作需高温度,严谨回答需低温度)。
构建 web 版本的 Chatbox docker镜像
我这里已经构建好了一个 Chatbox docker镜像,可以直接下载:点击这里下载已经构建好的docker镜像
- 获取
Chatbox 1.17.0源码
下载后解压到文件夹 chatbox,然后进入 chatbox 文件夹
cd chatbox
- 创建 Dockerfile
在项目根目录(chatbox/)中新建一个文件 Dockerfile:
# ---------- 阶段 1:构建 Web 前端 ----------
FROM node:20-slim AS builder
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y python3 make g++ bash git && rm -rf /var/lib/apt/lists/*
# 拷贝项目文件
COPY . .
# 删除 electron / capacitor 等依赖(Web 不需要)
RUN npm pkg delete devDependencies.electron \
&& npm pkg delete devDependencies['@capacitor/android'] \
&& npm pkg delete devDependencies['@capacitor/ios']
# 禁用 postinstall,防止 electron-builder 执行
RUN npm pkg delete scripts.postinstall
# 禁用删除 sourcemaps 的步骤(因为该脚本缺失)
RUN npm pkg delete scripts.delete-sourcemaps
# 安装依赖(忽略可选)
RUN npm install --omit=optional --legacy-peer-deps
# 构建 Web 版本
RUN npm run build:renderer
# ---------- 阶段 2:部署到 Nginx ----------
FROM nginx:stable-alpine
# 覆盖默认配置文件,让 Nginx 监听 8001
RUN sed -i 's/listen\s\+80;/listen 8001;/' /etc/nginx/conf.d/default.conf
# 拷贝构建产物到 Nginx
COPY --from=builder /app/release/app/dist/renderer /usr/share/nginx/html
# 暴露端口
EXPOSE 8001
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
请注意:这里将nginx和容器暴漏的默认端口设置为
8001,可以根据需要修改为其它端口号。
- 构建镜像
在 chatbox 目录下执行,构建名字为 chatbox-web:1.17.0 的docker镜像:
docker build -t chatbox-web:1.17.0 .
构建成功后可查看镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chatbox-web 1.17.0 5b15c2754a8d 2 days ago 124MB
- 测试镜像
安装
docker和docker-compose可以参见:在ubuntu中离线安装docker和docker-compose
方式1: 运行并映射端口(如 8080),通过镜像启动名称为 chabox 的容器:
docker run -d -p 8080:8001 --name chatbox-web chatbox-web:1.17.0
方式2: 也可以用 docker-compose 打开:
version: '3.9'
services:
chatbox:
image: chatbox-web:1.17.0
container_name: chatbox-web
build:
context: .
dockerfile: Dockerfile
ports:
- "8001:8001" # 映射宿主机端口到容器端口
restart: unless-stopped # 自动重启策略
volumes:
# 可选:将构建好的静态网页挂载出来,方便调试或持久化
- ./data/html:/usr/share/nginx/html
environment:
# 可选:设置 Nginx 或 Web 环境变量
- NGINX_PORT=8001
networks:
- chatbox-net
networks:
chatbox-net:
driver: bridge
docker-compose up -d
使用浏览器打开:
http://<你的服务器IP>:8080
如果在本地测试,则打开
http://localhost:8080
看到下面的界面就说明安装成功了:
- 导出镜像
把镜像导出存储为 tar 文件:
docker save -o chatbox-web-1.17.0.tar chatbox-web:1.17.0
现在这个镜像备份可以随时拷贝到其它机器上安装了。
安装chatbox web镜像
-
把 tar 格式的 chatbox 镜像拷贝到目标机器
-
加载镜像
docker load -i chatbox-web-1.17.0.tar
- 启动镜像
建议通过上面的 方式2 启动。
🪐祝好运🪐