Chatbox 是一款开源的跨平台 AI 聊天客户端,核心功能是聚合管理多个 AI 模型,并提供更高效、隐私可控的对话体验。
Chatbox 默认支持桌面端 Electron 应用,在构建纯 web 的 docker 容器时,需要自定义构建过程。
最近我因为构建AI实验室的需要,希望构建 Chatbox 的纯web的docker镜像,然后部署在服务器上,方便大家使用。

这个过程比较艰辛,希望它能让您少走弯路:)

Chatbox 简介

  1. 核心定位与优势
    Chatbox 并非独立的 AI 模型,而是一个 “AI 对话管理工具”。它的核心价值在于解决用户同时使用多个 AI 服务时的痛点。
  • 多模型聚合:支持对接 OpenAI(GPT-3.5/4)、Anthropic(Claude)、国内的通义千问、豆包等主流模型,无需在多个 APP 或网页间切换。
  • 隐私优先:对话数据默认存储在本地设备,而非第三方服务器,降低隐私泄露风险,适合对数据安全敏感的用户。
  • 跨平台使用:提供 Windows、macOS、Linux 三个系统的客户端,且支持网页版,不同设备可同步对话记录(需手动配置)。
  1. 关键功能特点
    除了基础的聊天功能,Chatbox 还包含提升效率的进阶设计:
  • 对话管理:支持对话标签分类、搜索历史对话、导出对话记录(如 Markdown、JSON 格式),方便整理和复用信息。
  • Prompt 优化:内置 Prompt 模板库,用户可快速调用预设指令(如 “总结文本”“翻译”),也可自定义保存常用 Prompt。
  • 模型参数调节:允许手动调整 AI 模型的温度(Temperature)、最大 tokens 等参数,适配不同场景(如创作需高温度,严谨回答需低温度)。

构建 web 版本的 Chatbox docker镜像

我这里已经构建好了一个 Chatbox docker镜像,可以直接下载:点击这里下载已经构建好的docker镜像

  1. 获取 Chatbox 1.17.0 源码

点击这里下载 Chatbox 1.17.0

下载后解压到文件夹 chatbox,然后进入 chatbox 文件夹

cd chatbox
  1. 创建 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,可以根据需要修改为其它端口号。

  1. 构建镜像

在 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
  1. 测试镜像

安装 dockerdocker-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

看到下面的界面就说明安装成功了:

Chatbox

  1. 导出镜像

把镜像导出存储为 tar 文件:

docker save -o chatbox-web-1.17.0.tar chatbox-web:1.17.0

现在这个镜像备份可以随时拷贝到其它机器上安装了。

安装chatbox web镜像

  1. 把 tar 格式的 chatbox 镜像拷贝到目标机器

  2. 加载镜像

docker load -i chatbox-web-1.17.0.tar
  1. 启动镜像

建议通过上面的 方式2 启动。


🪐祝好运🪐