找回密码
 立即注册
搜索
查看: 3990|回复: 37

[欢乐] 古法手写了个 OpenWebUI 的 Docker Compose 部署项目, 面向和我一样的小白用户

[复制链接]
     
发表于 2026-3-13 05:13 | 显示全部楼层 |阅读模式
本帖最后由 WiiGe 于 2026-3-16 15:27 编辑

发现 OpenWebUI 似乎没太多讨论?


相信大多数老哥都是通过各种 UI 来使用 AI 的, 而最让我喜欢的 UI 则是 Open WebUI. 作为 AI 前端. 这玩意好用是真好用,但真要部署一套生产级的私有化环境,你可能会遇到这些让人头秃的瞬间:

*   默认的 SQLite 存数据?数据量一大心里就发慌,生怕哪天爆炸
*   想玩 RAG(知识库)?RAGFlow, Dify不仅要自己构建镜像还尺寸爆炸?环境搭了一下午,还在加群问满天飞的报错
*   想用本地显卡跑模型?Ollam 又太达利特看不上? 那来用 vLLM
*   还有那个最近很火的 MCP 协议,想尝鲜却不知道怎么接上用? 用 MCPO 转成 OpenAI API 呗

为了不让各位把时间浪费在配置环境这种枯燥的事情上, 以便把头发省下来梳个中分, 我写了一个开箱即用、模块化的Open Web UI Docker Compose 部署方案:

👉 项目地址:WiiGe/Composerized-OpenWebUI

为了表示该项目使用的是多个独立组件, 给这套容器栈硬凹了个名字:PORT-PUMQTV 容器栈(stack)。读音类似 "port punktive",为了凑这个缩写,字典都快翻烂了...









该项目使用全明星阵容:
PostgreSQL, Open Web UI, Valkey, Apache Tika, Playwright, Unstructured, MCPO, Qdrant, Open Terminal 和 vLLM

PORT-PUMQTV就是为了把这些复杂的架构变成简单的配置文件.

项目亮点:
✅ 稳如老狗:PostgreSQL + Qdrant + Valkey 的组合,这是生产环境标配,数据安全有保障
✅ 功能拉满:RAG 知识库、MCP 工具调用、文档解析、本地多模态 LLM(通过vLLM使用Qwen3,5)、图像生成(请自行搭建Comfyui连接进来)... 配置都给你打包好了, 填上密码直接启动就完事
✅ 随意更改组件:模块化设计是核心。如果不需要 vLLM,不喜欢 Tika 或者其他组件,直接在 `docker-compose.yml` 里把服务注释掉就行,绝不强买强卖


项目怎么用?就三步:

1.  搞个 Docker 网络:
  1.     docker network create example_network
复制代码

2.  改下配置:
   
  1. cp .env.example .env
  2. vim .env  # 填填密码、IP啥的,都有中文注释
复制代码


3. O神启动 (指 OpenWebUI):
  1. docker-compose up -d
复制代码


启动和拉取完成后, 访问 http://<你设置的IP>:8080 就能使用了


🛠️ 项目小功能:
内置数据库自动备份脚本:可以定时备份聊天记录和设置数据
迁移指南:如果你之前用的是官方单容器OpenWebUI,项目提供了一个脚本, 方便从 SQLite 迁移到 PostgreSQL


如果你也正在折腾私有化 AI, 希望这个小项目能帮到你
如果觉得项目还不错,欢迎给个 ⭐️ 支持!也欢迎大家来提 Issue 和 PR, 狠狠地指♂导我, 一起把这个项目做成 OpenWenUI 全家桶


🔗项目传送门:
GitHub: https://github.com/WiiGe/Composerized-OpenWebUI
OpenWebUI 中文文档: https://docs.openwebui.cn/


虽然项目用于 AI, 但本贴含有0个 AI 内容,
最后, 祝诸君的 AI 助手跑得和大便一样通畅丝滑




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

     
发表于 2026-3-13 06:18 来自手机 | 显示全部楼层
楼主好人

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

     
 楼主| 发表于 2026-3-13 06:43 | 显示全部楼层
蓝色的风之精灵 发表于 2026-3-13 06:18
楼主好人

—— 来自 鹅球 v3.3.96

欢迎来提 Issue 和 PR~ 有什么需要加的组件或者需要某个组件的支持都可以提, 命还在就能改
回复

使用道具 举报

     
发表于 2026-3-13 07:34 | 显示全部楼层
小白用户的最大问题应该是docker镜像源吧

论坛助手,iPhone
回复

使用道具 举报

     
发表于 2026-3-13 07:44 | 显示全部楼层
这项目现在基本摆烂了吧每月更新没什么新活。本身设计面向本地llm,用长上下文的llm api不灵活设置max token还会截断。
rag现在意义也不大了,生图设置也依然简陋
回复

使用道具 举报

     
 楼主| 发表于 2026-3-13 09:03 | 显示全部楼层
Nanachi 发表于 2026-3-13 07:34
小白用户的最大问题应该是docker镜像源吧

论坛助手,iPhone

确实, 所以 OpenWebUI 很鸡贼地用的是 ghcr.io, 虽然 docker.io 没几个活着的加速proxy, 但 ghcr.io 敢加速的还是挺多的
回复

使用道具 举报

     
 楼主| 发表于 2026-3-13 09:22 | 显示全部楼层
奶香花卷 发表于 2026-3-13 07:44
这项目现在基本摆烂了吧每月更新没什么新活。本身设计面向本地llm,用长上下文的llm api不灵活设置max toke ...

最近的更新是 Skill 和 Terminal, 前者增强它自己的 Agent, 后者解决沙箱中的代码执行
截断这个问题其实是通病, 用 OAI 接入 Copilot 不好好管理上下文也会 early stop 对话输出. 我的建议是看看社区的一些上下文管理filter和tool, 它们能够自动异步压缩对话, 配合上agent 的 skill还是比较堪用的. 变相实现了无限对话.
我这种PDF多的人还比较刚需RAG, 反正向量化, 嵌入, 嵌TMD
生图设置确实简陋, 但我主要是白嫖社区的ComfyUI过滤器, 连接一个流程就使劲抽卡. 我的评价是能玩, 但离生产级还有距离

我装了几个 function 可以不选模型直接语音问问题, OpenWEbUI自动路由到合适的模型API上输出内容, 语义路由

作为折腾用的玩具还是挺好玩的
回复

使用道具 举报

     
发表于 2026-3-13 09:26 来自手机 | 显示全部楼层
有pg了不用pgvector何意味

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

发表于 2026-3-13 09:58 | 显示全部楼层
真小白还是直接豆包全家桶,谷歌全家桶比较方便。
自己搭框l架好像没什么必要        Re:Source
回复

使用道具 举报

     
 楼主| 发表于 2026-3-13 10:16 | 显示全部楼层
omnitoken 发表于 2026-3-13 09:26
有pg了不用pgvector何意味

—— 来自 鹅球 v3.3.96

假话: Qdrant 并发性能高, 索引牛逼, 写入和恢复高效
真话: 其实官方也支持 PGVector, 就是挂个不同的数据库展示容错
大实话:我其实还没用过 PGVector ......
回复

使用道具 举报

     
 楼主| 发表于 2026-3-13 10:16 | 显示全部楼层
fat 发表于 2026-3-13 09:58
真小白还是直接豆包全家桶,谷歌全家桶比较方便。
自己搭框l架好像没什么必要        Re:Source ...

对这个满世界都是豆包的世界绝望了!
回复

使用道具 举报

头像被屏蔽
     
发表于 2026-3-13 10:20 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2026-3-13 10:30 | 显示全部楼层
WiiGe 发表于 2026-3-13 09:22
最近的更新是 Skill 和 Terminal, 前者增强它自己的 Agent, 后者解决沙箱中的代码执行
截断这个问题其实 ...

现在RAG纯玩具,远不如直接在目录运行一个CLI提问。Openwebui截断是非常简单粗暴的,长文一点的翻译都会断,因为max_token默认就舍得很低,要自己手动改。
回复

使用道具 举报

     
发表于 2026-3-13 10:46 | 显示全部楼层
fat 发表于 2026-3-13 09:58
真小白还是直接豆包全家桶,谷歌全家桶比较方便。
自己搭框l架好像没什么必要        Re:Source ...

同问,我也想知道豆包全家桶咋用
回复

使用道具 举报

     
发表于 2026-3-13 10:52 | 显示全部楼层
fat 发表于 2026-3-13 09:58
真小白还是直接豆包全家桶,谷歌全家桶比较方便。
自己搭框l架好像没什么必要        Re:Source ...

OpenweibUI最大好处是可以对比2个LLM的输出和汇总,还有对话文件夹管理什么的。不过我现在也是一般事情直接豆包了。
回复

使用道具 举报

     
发表于 2026-3-13 22:35 | 显示全部楼层
这玩意儿和现在的openclaw,那个更好?或者说有啥区别?
回复

使用道具 举报

     
 楼主| 发表于 2026-3-14 12:34 来自手机 | 显示全部楼层
c12hero 发表于 2026-3-13 22:35
这玩意儿和现在的openclaw,那个更好?或者说有啥区别?

用这个,OpenWebUI至少不会自己把自己删了
回复

使用道具 举报

头像被屏蔽
     
发表于 2026-3-14 14:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2026-3-14 16:36 | 显示全部楼层
目前电脑上是用cherry studio。这类都得自己买api
回复

使用道具 举报

     
 楼主| 发表于 2026-3-15 01:14 | 显示全部楼层
diohanmilton 发表于 2026-3-14 16:36
目前电脑上是用cherry studio。这类都得自己买api

来用vLLM! 超快的!
回复

使用道具 举报

     
发表于 2026-3-15 21:11 | 显示全部楼层
有没有特别小白的操作指南啊,这个是把代码压缩下载到本地后直接解压缩之后就可以用了吗?还是说之后在按照三步骤操作才行?
回复

使用道具 举报

     
发表于 2026-3-15 22:36 | 显示全部楼层
openwebui也是一坨,但是看看远方的lobehub,还是捏着鼻子在用openwebui,要想多端同步基本只有这一个选择了,cherrystudio目前只有本地端
回复

使用道具 举报

     
发表于 2026-3-16 10:53 | 显示全部楼层
sqlite真没啥问题,个人到小型企业应用,qps不可能撑不住吧

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2026-3-16 11:45 | 显示全部楼层
openwebui能部署在nas上么?可以的话是不是就能随时远程访问了
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 14:29 | 显示全部楼层
c12hero 发表于 2026-3-15 21:11
有没有特别小白的操作指南啊,这个是把代码压缩下载到本地后直接解压缩之后就可以用了吗?还是说之后在按照 ...

下载到本地也得用 docker, 不然配环境可麻烦
这三步其实就是最简单的方案, 我在项目中用中文写了注释, 都是比较好理解的
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 14:30 | 显示全部楼层
莫夜戎 发表于 2026-3-15 22:36
openwebui也是一坨,但是看看远方的lobehub,还是捏着鼻子在用openwebui,要想多端同步基本只有这一个选择 ...

其实我在手机上用OpenWebUI的PWA, 还挺爽的
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 14:31 | 显示全部楼层
qaz121 发表于 2026-3-16 10:53
sqlite真没啥问题,个人到小型企业应用,qps不可能撑不住吧

—— 来自 S1Fun

确实, 这个pg其实是给那种朋友特别多的老哥准备的
搭了之后导入一大堆用户来访问可能会稍快些
我自己也用了很长一段时间sqlite
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 14:32 | 显示全部楼层
chuchoselph 发表于 2026-3-16 11:45
openwebui能部署在nas上么?可以的话是不是就能随时远程访问了

可以的, 你部署到支持docker的旧PC都行, 我试过床底下的i7-2700
也能用.jpg
回复

使用道具 举报

     
发表于 2026-3-16 15:23 | 显示全部楼层
马克收藏了,等回家布置看看
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 18:31 | 显示全部楼层
woalnio 发表于 2026-3-16 15:23
马克收藏了,等回家布置看看

好耶, 求个使用体验
如果觉得项目还不错,欢迎给个 ⭐️ 支持!同样欢迎提 Issue 和 PR ~
回复

使用道具 举报

     
发表于 2026-3-16 20:39 | 显示全部楼层
WiiGe 发表于 2026-3-16 14:29
下载到本地也得用 docker, 不然配环境可麻烦
这三步其实就是最简单的方案, 我在项目中用中文写了注释, 都 ...

是的我也这样,今天openwebui又奇怪错误,我接的claude官方,用 new api转一道,忽然就开始报错string什么什么unexpected,连续好几次,懒得纠结了,重roll几次好了,而且现在claude只要一查找openwebui的笔记,就立刻断掉,实在不想折腾放弃了,openwebui只支持openai格式的,真的是脑子抽了
回复

使用道具 举报

     
发表于 2026-3-16 21:08 | 显示全部楼层
⭐了
以前就用过,同样也是compose部署,不过没有可以本地推理模型的硬件,只是当成用API灵活调用各路模型比较性能的平台了,后来就订阅了各种plus,但是这些订阅里也不包含API。
当时遇到的一个问题是openwebui窗口里如果读文件的话,需要配置额外的文本提取模型,但是效果也不够好,主要还是文本对话。现在还有一个问题是,如果要做知识库的话,显卡显存的最低配置和推荐配置是啥样的,用什么模型会最好呢
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 22:47 | 显示全部楼层
莫夜戎 发表于 2026-3-16 20:39
是的我也这样,今天openwebui又奇怪错误,我接的claude官方,用 new api转一道,忽然就开始报错string什 ...

听上去就是某个组件写坏了? 不过我盲猜不出来是啥, 你其实可以把那个长长的日志扔给 LLM, 让它帮你提取下日志中的关键信息, 可以**加速排错过程
回复

使用道具 举报

     
 楼主| 发表于 2026-3-16 22:54 | 显示全部楼层
flamel 发表于 2026-3-16 21:08
⭐了
以前就用过,同样也是compose部署,不过没有可以本地推理模型的硬件,只是当成用API灵活调用各路模型 ...

读文件在 OpenWebUI 里就是理解成 RAG, 你可以试试比如 qwen3-vl-embedding 之类的模型来做向量化(嵌入), 文本提取组件也可见项目文档, MinerU 和 docling 效果都不错, 8G显存就够(但很勉强)

我前年用的是3070(拿去打游戏了) 和 3*V100 16G(已出) 现在是白嫖哥们的 5090, 所以我给不了你任何性价比显卡推荐, 因为我用的这些我全都买不起

评分

参与人数 1战斗力 +1 收起 理由
flamel + 1 学习了

查看全部评分

回复

使用道具 举报

     
发表于 2026-3-24 17:21 | 显示全部楼层
请问我是win11的家庭版,也是直接按照这三个步骤在cmd 里面输入这些指令操作嘛?为啥我 输入cp .env.example .env之后 系统提示我'cp' 不是内部或外部命令,也不是可运行的程序
或批处理文件?
回复

使用道具 举报

     
 楼主| 发表于 2026-3-26 04:09 | 显示全部楼层
c12hero 发表于 2026-3-24 17:21
请问我是win11的家庭版,也是直接按照这三个步骤在cmd 里面输入这些指令操作嘛?为啥我 输入cp .env.exampl ...

哎呀, 我忘了还有直接桌面起Docker的, 我的我的. 这些是 Linux 上的 工具名, 你在 Windows 的 Powershell/CMD 里识别不了的:

1. 建议另找台机器安装这个容器栈, 而不要主力的 WIndow 11 PC 上搭建, 因为你得保持一直开机才能访问 OpenWebUI
2. 我不清楚安装了什么版本的 Docker, 反正 Docker Desktop 我不太用得惯, 我在 Windows 上要么使用 WSL2 进行部署, 要么使用Docker CE for Windows.

Docker CE for Windows 会比较麻烦, 不少人都给我讲过 WIndows 只能用 Docker Desktop这种胡话. 其实微软官方就给出过这样的脚本:
  1. Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
  2. .\install-docker-ce.ps1
复制代码
你甚至可以在Powershell中使用 containerd:
  1. Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-ContainerdRuntime/install-containerd-runtime.ps1" -o install-containerd-runtime.ps1
  2. .\install-containerd-runtime.ps1
复制代码
建议你用 WSL2 装个 Ubuntu 来启动这套容器, 相关资料也多
回复

使用道具 举报

     
 楼主| 发表于 2026-3-26 04:12 | 显示全部楼层
c12hero 发表于 2026-3-24 17:21
请问我是win11的家庭版,也是直接按照这三个步骤在cmd 里面输入这些指令操作嘛?为啥我 输入cp .env.exampl ...

`cp .env.example .env` 这句的意思其实就是将 .env.example 复制一份并改名为 .env, 以便 docker compose 识别, 仅此而已
回复

使用道具 举报

     
发表于 2026-3-26 08:54 | 显示全部楼层
WiiGe 发表于 2026-3-26 04:09
哎呀, 我忘了还有直接桌面起Docker的, 我的我的. 这些是 Linux 上的 工具名, 你在 Windows 的 Powershell ...

好的,谢谢大佬指点,我研究下WSL2 怎么搞。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2026-6-25 03:11 , Processed in 0.160903 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表