纠结 CherryStudio 和 OpenWebUI?我全都要!HaloWebUI开启测试

现在的 AI 客户端简直是百花齐放,讨论相对较多的应该就属 CherryStudioOpenWebUI

先聊 CherryStudio

  • 优点:UI 设计确实审美在线,比 ChatBox 精致不少,而且多服务商、多模型的接入和切换非常方便,主打一个方便快捷,打开软件就能用。
  • 硬伤:对话历史的堆积,个人目前体验变得非常卡;最可惜的是缺乏原生多端同步

再说 OpenWebUI

  • 优点:走的是 Web 架构路线,界面复刻了 ChatGPT 的极简风格,上手几乎是零门槛。函数调用、知识库,还有高度可定制化的设置非常优秀,比如模型参数、权限、检索策略这类设置,很多客户端只是给个开关意思一下,它是给你一整套可控面板,当然还有我最需要的多端同步

  • 缺点:模型太多的时候就很不方便管理,而且不支持 Gemini 接口的原生接入。高度可自定义化也意味着默认体验未必最佳——你得自己调,调好了很爽,没调好就容易变成功能太多太杂,懒得去动的状态


但我想要是能把二者相结合岂不是绝杀?能的佬友,能的!



:star: 重点优化功能:

自定义上下文条数:可以设置发送给模型的历史消息上下文的数量,有效节省Token



增加清除上下文功能,对齐cherrystudio,实现当前对话中隔离上下文


增加了 Responses API 传递支持,XHigh展示思维链,ChatGPT开启模型自带内置搜索


新增模型一键设置公开: 模型设置页增加一键切换公开私有,方便管理


模型管理: 外部连接页增加标签分类和模型管理功能,和cherrystudio一样方便添加模型


新增对话分支功能: 支持当前对话直接创建新分支到新窗口继续对话
PixPin_2026-01-15_13-55-59


Gemini 原生端口支持:不依赖 OpenAI 兼容层,直接走 Gemini 原生接口


外部连接显示优化:改成双列显示,管理效率直接拉满,标签排序方便分类收纳


图标 + 思考强度可选: 更加直观方便可选,增加常见图标


模型计费 + 用量统计前端同步info黑框:支持免费/按次/按量三种模式,实时计算对话成本



优化代码块展示:仿Mac风格,并优化原版字体和颜色,更加美化易读


新增图片连续编辑功能: 可以在对话中连续编辑图片,不会丢失原画面


设置优化:添加备注功能方便区分,列表中点击名称直接跳转到设置,再也不怕点错小齿轮,适合链接多的佬


使用方式:


Docker 一键部署【点击展开】
docker run -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  ghcr.io/ztx888/openwebui:latest
  • 浏览器访问:http://你的服务器IP:3000
  • 数据持久化在 Docker 卷:open-webui(用于重启或者更新的时候不丢配置和对话)

如果你本机没有 Docker 卷习惯,也可以改成本地目录挂载:

mkdir -p ./open-webui-data

docker run -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  -v $(pwd)/open-webui-data:/app/backend/data \
  ghcr.io/ztx888/openwebui:latest

pip + PM2部署【点击展开】

适合:不想用 Docker、不想折腾前端构建、就想稳定跑起来的佬。
优势:步骤少、更新方便、跟管理 Node 项目一样用 PM2 守护

:warning: 注意:本包同时提供 open-webuiopen-webui-leon 两个命令。
为避免与官方包冲突,建议使用独立 venv 并优先用 open-webui-leon 命令

1、准备环境

  • Python:建议 3.11 或 3.12(不支持 3.13)
  • Node:仅用于装 PM2(装过的佬忽略)

2、创建目录 + venv + 安装

mkdir -p /opt/open-webui
cd /opt/open-webui

python3.11 -m venv venv
source venv/bin/activate

# 从 GitHub Release 安装(务必替换版本号!!!)⚠️
pip install https://github.com/ztx888/open-webui/releases/download/v0.7.3-7/open_webui_leon-0.7.3.post7-py3-none-any.whl

3、准备数据目录

mkdir -p /opt/open-webui/data

4、先手动跑一次确认

source /opt/open-webui/venv/bin/activate
export DATA_DIR=/opt/open-webui/data

open-webui-leon serve --host 0.0.0.0 --port 8080

浏览器访问:http://你的服务器IP:8080
确认能访问后按 Ctrl+C 停止,继续下一步

5、用 PM2 守护自动重启 + 日志

# 安装 PM2
npm i -g pm2

# 创建启动脚本(推荐方式)
cat > /opt/open-webui/start.sh << 'EOF'
#!/bin/bash
cd /opt/open-webui
source venv/bin/activate
export DATA_DIR=/opt/open-webui/data
export RAG_EMBEDDING_ENGINE=openai
export ENABLE_MEMORIES=false
exec open-webui-leon serve --host 0.0.0.0 --port 8080
EOF

chmod +x /opt/open-webui/start.sh

# 用 PM2 启动
pm2 start /opt/open-webui/start.sh --name open-webui --interpreter bash

pm2 list
pm2 logs open-webui
pm2 save
pm2 startup

:light_bulb: 环境变量说明

  • RAG_EMBEDDING_ENGINE=openai:节省 200-400MB 内存
  • ENABLE_MEMORIES=false:加快启动速度

更新方式(pip 版)

cd /opt/open-webui
source venv/bin/activate
pm2 stop open-webui

# 从 GitHub Release 更新(务必替换版本号!!!)
pip install https://github.com/ztx888/open-webui/releases/download/v0.7.3-7/open_webui_leon-0.7.3.post7-py3-none-any.whl

pm2 restart open-webui
pm2 logs open-webui

常用命令

pm2 status              # 查看状态
pm2 logs open-webui     # 查看日志
pm2 restart open-webui  # 重启服务
pm2 stop open-webui     # 停止服务

ARM 设备部署【点击展开】

本镜像针对 ARM64 架构设备(如 Raspberry Pi 4/5、NVIDIA Jetson、Apple M1/M2/M3、部分 Android 盒子)提供了独立构建版本。

提醒:树莓派请尽量使用 64 位系统(aarch64),否则无法运行 arm64 镜像。


1、拉取镜像

ARM 架构使用独立构建标签,请使用带 -arm64 后缀的镜像标签:

docker pull ghcr.io/ztx888/openwebui:latest-arm64

2、启动容器(Docker CLI)

最简单的启动方式:

docker run -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  ghcr.io/ztx888/openwebui:latest-arm64

启动后访问:

http://<你的设备IP>:3000

数据保存在 Docker Volume:

open-webui

3、使用 Docker Compose

如果你习惯用 docker-compose.yml 管理:

services:
  open-webui:
    image: ghcr.io/ztx888/openwebui:latest-arm64
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    restart: always

volumes:
  open-webui:

启动命令:

docker compose up -d

:warning: 常见问题

  • 为什么必须加 -arm64
    本项目的 latest 标签仅包含 amd64 架构。ARM 设备(树莓派、Mac M 系列等)必须使用 latest-arm64 标签,否则会出现 no matching manifest for linux/arm64 等错误。
  • Apple Silicon (M1/M2/M3) 用户说明:
    虽然 Docker Desktop 可能通过 Rosetta 模拟运行 amd64 镜像(通常更慢、占用更高),但建议使用 latest-arm64 以获得更好的原生性能与稳定性。
  • 内存要求:
    建议至少 4GB RAM。2GB 内存设备可能遇到 OOM导致容器启动失败或运行缓慢
  • 更新镜像:
    重新拉取并重启即可,命令如下:
docker pull ghcr.io/ztx888/openwebui:latest-arm64
docker restart open-webui

最后必须说一句:heart:

非常感谢各位公益站站长的付出和维护,真的帮各位佬省了太多折腾和成本。提供节点、反代、还是日常兜底运维,都很不容易,向各位站长致敬


遇到问题欢迎反馈:heart:

当前已知问题与佬友功能建议【持续更新】:目前最新镜像 v0.7.3-7版本 :star:

  • 深度优化启动速度,增加缓存机制,修复原版频繁请求模型列表、加载各种模型等不必要操作

  • 如在使用中遇到问题,欢迎佬友反馈复现条件与日志片段,便于我快速定位并持续优化

  • 如遇对话报错,建议优先查看报错信息,查阅相关帮助文档 [1] 或留言求助

  • 原版的OpenWebUI对话的兼容性过于严格,可能会出现不支持某些代理中转,项目初期,希望佬们多多反馈报错内容或使用感受,感谢佬们的支持和理解

下个版本更新预告:【欢迎佬们多多建议】

  • 对话输入框增加思考强度快捷调节,方便快捷
  • UI深度优化重新排列,修复原版杂乱的设置选项
  • 优化使用体验,使小白更加易上手使用
  • 深度优化内存占用,避免不必要的资源浪费

我会持续迭代同步官方上游更新,如果你装了之后遇到问题、或者有更想要的功能点,又或者是UI方面的建议,都非常欢迎反馈,i人可以私信交流。 什么?你问我为何如此上心?


  1. OpenWebUI指南 ↩︎

924 个赞

大佬厉害!

9 个赞

终于写完了,睡觉睡觉 :distorted_face:

17 个赞

先占个位置。看上去很有东西呀。

8 个赞

太有用了

8 个赞

这个不错啊,!大晚上不睡看到好东西了

8 个赞

支持支持 :heart_eyes:

6 个赞

想了解一下内存占用情况如何

9 个赞

太强了吧

7 个赞


以我的绿联NAS上的docker环境为例,刚测试一轮对话,占用基本在660M左右

12 个赞

owui现在的问题就是模型管理太复杂了,权限还得一个个开

10 个赞

CherryStudio确实很卡

6 个赞

好提议!已增加一键开启和关闭的开关,直接一键设置模型

12 个赞

太强大了

2 个赞

哇哦 大家快来看,这有个好东西

4 个赞

关注下了

4 个赞

有没有保留数据库模式

7 个赞

star了,之前都是使用Cherrystudio的,不同设备用起来同步是个大问题,这个应该能解决吧(还没试过openwebui)

5 个赞

题外话:
佬用cherry卡的可以检查一下有没有自定义css搞了复杂动画。。。
比如前几天我的:
https://linux.do/t/topic/1421521
一个css动画吃了大量cpu​:joy:

画图的有些返回base64 非常巨大 那个窗口也会卡了

4 个赞

哦?这个我还真没注意哎!反正最近用的真的有点卡 :sob:

3 个赞