open-coreui:把 Open WebUI 从“大餐厅”改成“餐车”的 rust 轻量化方案
我见过很多人第一次想跑 Open WebUI 的时候,心情像这样:
“我就想在自己电脑上跟模型聊两句,怎么打开安装指南以后,像被拉去开一家连锁餐厅?”
Docker、Python、数据库、缓存……菜单还没点,厨房先装修一圈。
这时候 open-coreui 的定位就很清楚了:把“开大餐厅”改成“推一辆餐车出来营业”。
餐车不一定能做满汉全席,但它的优点也很直接:轻、快、上手门槛低。你要的是“现在就能吃上一口热的”,它就合适。
先把话说死:open-coreui 到底是什么
一句人话版定义:
- open-coreui 是 Open WebUI v0.6.32 的轻量重写(lite fork),不是官方版本。
- 它的目标是 尽量用单可执行文件跑起来,同时 沿用原版前端,后端换成 rust(主要是 actix-web 这一套)。
- 项目目前处于 早期开发阶段,官方说明里写得很直白:当前只实现了基本对话功能,其他能力在逐步补齐。
你可以把它理解成:菜单牌子还写着“Open WebUI 风味”,但后厨换了更小更快的炉子;菜品先从“招牌炒饭(聊天)”开始,其他菜慢慢加。

为了方便使用场景,它给了两种完全独立的“餐车开法”:
| 客户端类型 | 适合谁 | 你得到什么 |
|---|---|---|
| Desktop(桌面端) | 个人电脑、想开箱即用 | 一个桌面应用,装完就跑 |
| Backend Server / CLI(服务端) | 放服务器、多人通过浏览器访问 | 一个后端可执行文件,跑起来后浏览器访问 |
你不需要两个都装。按场景选一个就行。
轻量化到底轻在哪:5 个关键点(别贪,多了反而腻)
前端沿用原版
open-coreui 的思路不是“重新设计 UI”,而是尽量复用 Open WebUI 的前端。好处是你上手几乎没学习成本。后端换 rust/actix-web
后端用 rust 写,主框架是actix-web。这类组合的气质就是:并发下更稳、资源用得更省,像餐车的炉火更集中,出餐更利索。默认把“数据库”压到 sqlite
配置和数据目录默认在~/.config/open-coreui,数据库默认是 sqlite:sqlite://{CONFIG_DIR}/data.sqlite3。
这相当于把“仓库”塞进餐车底下的抽屉:够用、好搬、少折腾。真的不强制你装一堆依赖
官方 README 明确写了:不需要 Docker、Python、PostgreSQL、Redis 这些依赖环境。
这不是在嘲笑它们,而是说:你只想吃个炒饭,就别先盖个中央厨房。开关很多,但别被“全家桶”诱惑
它的 CLI 文档里列了大量环境变量(认证、WebSocket、Web 搜索、代码执行、图片生成……开关一堆)。
现实一点:项目仍在早期阶段,先把“聊天主链路”跑顺,再考虑加配菜。
实战:用 10 分钟把它跑起来(桌面端 / 服务端二选一)
先上官方入口:
- Releases:
https://github.com/xxnuo/open-coreui/releases/latest - CLI 文档:
https://github.com/xxnuo/open-coreui/blob/main/CLI.md
方案 A:桌面端(适合“我就想马上用”)
- 去 Releases 下载对应系统的桌面客户端
- 安装后直接打开
macOS 常见坑:提示“应用已损坏”。别慌,这是系统的隔离属性在闹脾气,终端跑一行就好:
sudo xattr -d com.apple.quarantine "/Applications/Open CoreUI Desktop.app"
方案 B:服务端(适合“放服务器给团队用”)
- 去 Releases 下载对应系统的后端二进制
- Linux/macOS 赋予执行权限并启动:
chmod +x open-coreui-*
./open-coreui-*
- 浏览器打开它输出的地址(通常是
http://localhost:8168)
如果你想把餐车只停在自己这台机器上(不让局域网围观),把 HOST 绑到本地回环:
HOST=127.0.0.1 PORT=8168 ./open-coreui-*
让它“连上模型”:OpenAI 兼容接口的最小配置
open-coreui 的配置方式很“餐车”:主要靠环境变量。最常用的就是这俩:
OPENAI_API_BASE_URL:接口地址OPENAI_API_KEY:密钥(有的本地服务会忽略,但字段要有)
举个本地模型服务的例子(你把 base_url 换成你自己的就行):
OPENAI_API_BASE_URL="http://127.0.0.1:11434/v1" \\
OPENAI_API_KEY="local-dev" \\
./open-coreui-*
这一步的逻辑很简单:open-coreui 负责当 webui,模型服务负责当“炉子”。 两者之间用 OpenAI 兼容协议对接。
常见坑与对策:别让餐车开到沟里
1) “我以为它什么都支持,结果找不到功能”
官方 README 已经打了预防针:早期阶段,仅基础对话。
所以你看到 CLI 里一堆开关,也别急着全打开。先跑通聊天,再逐项验证你需要的能力是否已实现。
2) “我想给同事用,结果一开机就暴露在公网”
默认 HOST=0.0.0.0 意味着可能对外监听。你至少做三件事:
- 只在内网用:
HOST=127.0.0.1或绑定内网 IP - 关掉随便注册:
ENABLE_SIGNUP=false - 固定会话密钥:设置
WEBUI_SECRET_KEY(别用默认自动生成的临时值)
3) “我换了机器/重装了系统,聊天记录没了”
去 CONFIG_DIR 找数据目录。默认在:
~/.config/open-coreui
你要迁移/备份,重点看 sqlite 文件(通常叫 data.sqlite3)。
想把数据挪到别的盘,就显式指定:
CONFIG_DIR="/path/to/open-coreui" ./open-coreui-*
4) “端口被占了,启动失败”
两条路:
- 换端口:
PORT=18168 - 让系统随机分配:
ENABLE_RANDOM_PORT=true
三行总结 + 下一步清单
三行总结:
- open-coreui 的野心很克制:先把 Open WebUI 的“聊天主链路”做成单文件、轻量、跑得快。
- 它像餐车:门槛低、好搬家,但别指望一上来就满配全套。
- 真正的“高性能”不是口号,是你在低配机器上也能顺滑聊起来。
下一步清单(照着做就行):
- 个人用:装 Desktop 版本,先跑通一次聊天
- 团队用:跑 CLI 服务端,绑定内网地址 + 关闭公开注册
- 想要更可控:把
CONFIG_DIR放到你习惯备份的位置 - 想折腾:从 CLI.md 里挑 1 个开关,开一个测一个
参考链接:
- 项目仓库:
https://github.com/xxnuo/open-coreui - Releases:
https://github.com/xxnuo/open-coreui/releases/latest - CLI 配置:
https://github.com/xxnuo/open-coreui/blob/main/CLI.md
觉得有用的话,顺手做个“技术动作”
我不擅长吆喝,但我很懂“操作步骤”,所以给你一份可执行清单:
- 点赞:如果这篇把你从“装修大餐厅”里拉出来了,点一下页面的点赞按钮,让它多活一会儿
- 转发:把链接发给那个正在 Docker 里迷路的同事,救人一命胜造七级浮屠
- 收藏:用浏览器收藏最稳(macOS:
Command+D,Windows/Linux:Ctrl+D),下次需要时不用再翻历史记录 - 关注:想持续收“轻量化、rust、webui”这类干货,可以订阅本站 RSS(通常是
/index.xml),或者把这个站点加进你的阅读器
你做完这些,我就知道这篇“餐车教程”没白写。