news 2026/9/6 17:31:30

WeKnora离线部署完整教程:内网无网络环境下4步搭建私有知识问答系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeKnora离线部署完整教程:内网无网络环境下4步搭建私有知识问答系统

WeKnora离线部署完整教程:内网无网络环境下4步搭建私有知识问答系统

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

WeKnora 是一个开源的 LLM 知识平台,把原始文档变成可提问的 RAG 知识库、能自主推理的智能体和自动维护的 Wiki。本文带你在一台没有外网的内网服务器上,只靠 Docker 把整套系统跑起来——文档解析、向量检索、大模型问答全部发生在你的硬件里,数据不出域。

你会得到什么

先说结果,让你知道这套折腾换来的是什么。部署完成后,浏览器打开http://localhost,你能做到三件事:

  1. 快速问答:上传一批 PDF、Word、Excel,用大白话提问,答案带来源引用;
  2. 智能体推理:面对多步复杂问题,ReAct 智能体会自己规划检索、调用工具、逐步求解;
  3. 自动 Wiki:智能体把散装文档蒸馏成带互链的 Markdown 知识库,还能一键回滚历史版本。

整个系统由五个容器组成:前端界面、后端 API、文档解析器(docreader)、带向量检索能力的 PostgreSQL(ParadeDB 镜像)和 Redis 缓存。它们全部运行在一个名为WeKnora-network的 Docker 内部桥接网络里,彼此通过内网通信,不产生任何出网请求。

这套方案适合谁

先花 10 秒判断一下自己该走哪条路,能省很多事:

你的情况建议说明
个人或小团队,只想本机试用Lite 形态单应用、零依赖,数据完全存本地,默认只允许本机访问,不需要数据库和消息队列
企业内网、多成员协作、完整解析链路标准版(本文主角)Docker Compose 多容器部署,私有化后数据同样留在本地
涉密环境,服务器完全断网标准版 + 镜像/模型预迁移见下文"起飞前检查"

Lite 与标准版的完整差异可以看 Lite 文档。本文按标准版展开,因为绝大多数内网部署最终都要走到这一步。

起飞前检查:先确认三件事

新手卡住,八成不是命令打错,而是准备工作缺了一块。按顺序过一遍:

1. Docker 环境

docker compose version

能输出版本号就行。装不上 Docker 的话,这一步会卡最久,优先解决。

2. 硬件规模

一套推荐配置:8 核 CPU、32GB 内存、200GB 可用 SSD 空间。大模型推理是内存大户,如果你还要跑本地对话模型,内存不足时问答会慢得让人怀疑人生。

3. 无网络环境下的"搬运"计划(完全断网才需要)

有网的机器上准备两样东西,拷到内网目标机:

  • 容器镜像:docker save导出,目标机docker load导入(涉及 weknora-app / weknora-ui / weknora-docreader、ParadeDB 版 PostgreSQL、Redis 等镜像);
  • Ollama 模型文件:对话模型和嵌入模型(嵌入模型是把文字转成数字向量、供语义检索用的"翻译官"),在有网机上ollama pull后用ollama cp迁移,或整目录拷贝~/.ollama/models

有外网的内网跳板机环境可以跳过这一节。

四步把系统跑起来

第一步:拿到项目代码

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora

内网机器上可以直接把整个目录打包拷过去,效果一样。

第二步:生成配置文件

cp .env.example .env

.env是整套部署的总开关,模板文件里每一项都有中文注释。默认值大多可以直接用,离线场景重点关注三行:

STORAGE_TYPE=local # 文件落在本地卷,默认值即可,无需改 OLLAMA_BASE_URL=http://host.docker.internal:11434 # 容器访问宿主机 Ollama 的地址,默认即可 SYSTEM_AES_KEY=weknora-system-aes-key-32bytes!! # 建议换成自己生成的32字节字符串

前两项解释一下:STORAGE_TYPE=local保证所有上传文档都写进本地 Docker 卷;host.docker.internal是容器里指代"宿主机"的固定写法,Ollama 跑在你本机 11434 端口上,这个地址不用动。第三项SYSTEM_AES_KEY用来加密数据库里存的 API 密钥等敏感字段——一旦丢失,已加密的数据无法恢复,所以务必自己换掉模板里的示例值并妥善备份。

第三步:启动全部服务

docker compose up -d

镜像已在第三步"搬运"计划里导入过的机器,加--pull never避免它尝试出网拉取;或者直接用仓库自带的启动脚本:

./scripts/start_all.sh --no-pull

脚本会顺手把宿主机的 Ollama 也拉起,并持续跟踪后端、解析器、数据库的启动日志,方便你确认状态。

第四步:等健康检查通过

首次启动会执行数据库自动迁移(AUTO_MIGRATE默认开启),比平时慢一些。等一两分钟后检查:

docker compose ps

五个容器都显示Up,其中WeKnora-apphealthy才算就绪——前端容器配置了"等 app 健康再启动"的依赖关系,所以 app 不绿,页面就不开,这是正常保护逻辑,不是故障。

如何验证部署完全离线

部署成功后值得花两分钟做个"断网测试",彻底放心:

  1. 探活后端curl http://localhost:8080/health,返回正常即后端在线;
  2. 看端口面:标准部署只向宿主机开放 80(前端)和 8080(API)两个端口,其余组件(如 docreader 的 50051)只在内部网络可见;
  3. 看数据流:浏览器开开发者工具的 Network 面板,问一个问题,你会看到所有请求都发往localhost
  4. 终极验证:如果条件允许,直接拔掉网线再问一轮,答案照常生成——这就是"数据不出域"的字面含义。

大模型这一环也值得确认:Ollama 跑在宿主机上,容器经host.docker.internal连入,也就是说连"大脑"都在你自己的机器里,而不是某家云厂商的 API。

接入本地模型,问出第一个问题

服务都绿了,但系统还不知道用哪个模型"思考"。接下来五分钟内完成初始化:

  1. 确认 Ollama 就绪:宿主机上ollama list能看到你迁移过来的模型即可;
  2. 浏览器打开http://localhost:注册账号,进入设置里的模型配置,把 Ollama 作为 Provider 接入,分别选一个对话模型(负责生成回答)和嵌入模型(负责把文档切片变成向量);
  3. 建知识库、传文档:新建知识库后拖入 PDF、Word、TXT 等文件,系统自动走"解析 → 切块 → 向量化"流水线,切片可以在界面上逐块查看和编辑;
  4. 开问:处理完成后在对话框提问,答案下方会列出引用来源,点一下就能跳回原文位置。

如果还想看智能体把文档整理成 Wiki 的效果,同一个知识库可以切换到 Wiki 模式,几分钟后得到一份带知识图谱的互链文档:

常见卡点速查

现象原因解法
页面 502 或一直打不开app 容器健康检查未通过,前端在等它docker compose logs app看日志;首启数据库迁移慢属正常,等 1-2 分钟
模型配置里 Ollama 连不上宿主机 Ollama 未启动,或地址配错宿主机跑ollama serve;确认.envOLLAMA_BASE_URL指向http://host.docker.internal:11434
文档解析慢到怀疑CPU 跑嵌入模型,或单文件过大换更小的嵌入模型;用MAX_FILE_SIZE_MB限制单文件体积
升级后界面还是旧版只执行了up -d,复用了本地旧镜像docker compose pull(或./scripts/start_all.sh -p)再up -d
数据"消失"误删了 Docker 卷数据在postgres-datadata-files等卷里,docker compose down时千万别带-v

更多排障细节见官方 FAQ,环境变量的完整清单(约 150 项、含注释)在官网文档里可查。

跑起来之后,可以往这三步走

  • 按需开启可选组件:知识图谱加--profile neo4j,对象存储加--profile minio,全链路追踪加--profile langfuse--profile full一次全开,组件间仍走内网;
  • 接入内网 IM:WeCom、飞书、Slack 等渠道都支持私网部署,把知识库变成同事随手可问的机器人;
  • 给 Ollama 配 GPU:推理速度能提升一个数量级,文档批量导入体验会质变。

对于政府、金融、医疗这类数据合规要求严格的场景,这套"断网可用"的部署形态已经能覆盖大部分知识管理需求;后续版本在向量库、解析引擎上的扩展能力,也让它有余量跟着你的数据规模一起长大。

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 17:31:29

PCIe 5.0 M.2规范深度解读:从金手指到散热,一文避开硬件选型坑

简介:PCI-SIG 官方发布的 PCI Express M.2 规范修订版 5.0(Version 0.9,2022 年 12 月 16 日),是面向硬件设计、存储设备开发、PCB 布线与接口测试工程师的权威技术参考文档,也适合电子工程相关专业的学生作…

作者头像 李华
网站建设 2026/9/6 17:29:44

KOReader 开源阅读器:让 Kindle 和 Kobo 重新爱上 PDF 的完整指南

KOReader 开源阅读器:让 Kindle 和 Kobo 重新爱上 PDF 的完整指南 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices 项目地…

作者头像 李华
网站建设 2026/9/6 17:28:56

猫抓浏览器插件使用教程:网页视频与 M3U8 流媒体如何保存到本地

猫抓浏览器插件使用教程:网页视频与 M3U8 流媒体如何保存到本地 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 网页上正在播放的视频&…

作者头像 李华
网站建设 2026/9/6 17:25:43

J1939协议解析实战:非标准x_xspd报文转实时车速

简介:面向汽车电子与车载诊断开发人员的J1939诊断协议解析文档,重点解决诊断设备与ECU通信格式不统一、协议实现细节不清晰等问题。内容系统说明协议范围、术语定义、总体架构、数据链路层及应用层诊断等核心模块,并结合PDU、TPKT、消息类型、…

作者头像 李华
网站建设 2026/9/6 17:24:51

100张图批量去水印,IOPaint 一条命令跑完

100张图批量去水印,IOPaint 一条命令跑完 【免费下载链接】IOPaint Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pict…

作者头像 李华