news 2026/9/7 1:55:14

WeKnora 零门槛 Docker 部署:3 步跑通可用的 RAG 知识库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeKnora 零门槛 Docker 部署:3 步跑通可用的 RAG 知识库

WeKnora 零门槛 Docker 部署:3 步跑通可用的 RAG 知识库

【免费下载链接】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 知识库、推理 Agent 和自维护 Wiki。本文带你用 Docker 部署 WeKnora:从机器自查、最小化启动到生产加固,全程只需基本 Linux 命令。适合第一次部署的零基础新手和想把 WeKnora 用到生产环境的普通开发者。

部署前自查:1 分钟确认机器够不够

WeKnora 用 Docker Compose 编排多个容器(即用一个文件声明并一起启动一组容器),核心包括前端、主应用、文档解析服务、PostgreSQL(ParadeDB 版,自带向量检索)、Redis 缓存,MinIO 和 Neo4j 等按需在 Compose profile 里开启。

环境类型CPU内存磁盘说明
开发测试2 核+4GB+20GB+仅跑核心服务 + 本地 Ollama
生产环境4 核+16GB+100GB+建议另备一台 Ollama/模型服务

在终端直接运行下面这段,确认资源与 Docker 可用:

echo "CPU: $(nproc) 核" echo "内存: $(free -h | awk '/Mem:/{print $2}')" echo "磁盘: $(df -h . | awk 'NR==2{print $4}') 可用" docker version --format '{{.Server.Version}}' docker compose version

执行bash -c '粘贴上面内容'或保存为check.sh后运行bash check.sh均可。经验提示:模型推理与文档解析同时跑时内存占用会翻倍,生产机器建议预留 50% 内存余量。

3 步跑通最小部署:从代码到首次访问

第 1 步,拉取代码:

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

第 2 步,复制并确认配置。启动脚本会自动从模板生成.env,你只需确认关键项:

cp .env.example .env # 生成 .env(脚本也会自动做这步) # 打开 .env 确认以下默认值是否满足你: # APP_PORT=8080 后端 API 端口 # FRONTEND_PORT=80 前端访问端口 # DB_DRIVER=postgres 主数据库类型 # OLLAMA_BASE_URL=http://host.docker.internal:11434 # 本地 Ollama 地址

第 3 步,一键启动。启动脚本 会检查 Docker 环境、拉起本地 Ollama(未安装时自动安装)、拉取镜像并启动所有核心容器:

./scripts/start_all.sh # 启动 Ollama + 全部 Docker 容器

启动完成后访问:

  • 前端界面:http://localhost:80(即http://localhost
  • API 接口:http://localhost:8080(健康检查:/health

首次进入前端会看到初始化配置向导,在这里配置 Ollama 状态与 LLM/Embedding 模型:

核心配置项解析:启动后该改哪些变量 ⚙️

.env里有上百个变量,新手只需盯住下面这几项:

配置项默认值作用建议值
APP_PORT8080后端 API 的宿主机端口冲突时改为未占用端口
FRONTEND_PORT80前端 nginx 的宿主机端口被占用就改并同步改访问地址
DB_DRIVERpostgres主数据库类型(postgres/mysql/sqlite)生产保持postgres
DB_PASSWORD模板示例值数据库密码生产必须换强密码
REDIS_ADDRredis:6379缓存与队列连接地址保持默认
STORAGE_TYPElocal文件存储后端(local/minio/s3 等)单机用local,多机改minio
OLLAMA_BASE_URLhttp://host.docker.internal:11434LLM 服务地址,容器外用此地址连宿主机远程推理改成你的服务端点
LOG_LEVELdebug日志级别(debug/info/warn/error)生产改info

启动后还可以在前端设置页调整语言、解析引擎、存储引擎等运行时选项,不用重启容器:

常见报错速查:卡住时直接定位 🔍

启动脚本报 "未安装Docker,请先安装Docker" 或 "Docker服务未运行"

Q: 执行./scripts/start_all.sh提示 Docker 检查不通过 A: 确认 Docker 已安装且在运行:docker version;系统服务未启动则sudo systemctl start docker,再重跑脚本。

日志提示 "本地Ollama服务启动失败" 或 "远程Ollama服务不可访问"

Q: 容器起来了,但大模型相关功能不可用 A: 先验证 Ollama 是否可连:curl -s http://localhost:11434/api/tags。本地服务未起则systemctl restart ollama;配置的是远程地址则确认.envOLLAMA_BASE_URL可达(OLLAMA_OPTIONAL=true时仅告警不阻断启动)。

前端打不开,疑似 80 端口冲突

Q: 浏览器访问http://localhost显示别的网站或拒绝连接 A: 查端口占用ss -tulpn | grep :80,确认是 WeKnora-frontend 容器监听;若是,改.envFRONTEND_PORT./scripts/start_all.sh -s停止再重新启动。

生产环境优化:安全加固与性能提速 🛡️

上线前过一遍这个清单:

  • DISABLE_REGISTRATION=true,禁止陌生人自助注册
  • DB_PASSWORDREDIS_PASSWORD全部换成强随机值
  • 显式设置 32 字节的SYSTEM_AES_KEY(丢失会导致已加密的 API Key 等字段无法解密)
  • GIN_MODE=releaseLOG_LEVEL=info,关闭 Swagger 与调试日志
  • 前置 nginx/网关挂 HTTPS,不裸奔 8080 端口
  • 定期备份data-files等 Docker 数据卷(docker volume ls查看)
  • 多实例共享 Redis 时设置WEKNORA_REDIS_NAMESPACE隔离频道

性能侧抓住三个关键动作,每项一行命令:

  1. 盯住资源水位,确认瓶颈在 CPU 还是内存:docker stats WeKnora-app WeKnora-docreader
  2. 调整后台任务并发(WEKNORA_ASYNQ_CORE_CONCURRENCYCONCURRENCY_POOL_SIZE,见.env注释)后热重启应用容器:docker compose up -d app
  3. 确认 ParadeDB 向量/全文索引就位,检索性能依赖它:docker compose exec postgres psql -U postgres -d WeKnora -c "\di"

环境选型:开发、生产还是离线

三种典型场景的差异如下,按需选择:

对比项开发环境生产环境离线环境
代码加载只起基础设施(docker-compose.dev.yml),app/frontend 本地跑热重载镜像内置,docker compose up -d提前docker pull或加载镜像包
日志级别LOG_LEVEL=debuginfowarn以上
网络本地端口开放仅暴露必要端口,HTTPS 入口内网隔离,--no-pull启动
更新策略实时改码即时生效计划窗口docker compose pull && up -d手动替换镜像后重启

开发模式可先跑./scripts/check-env.sh自查本地依赖,再按提示执行make dev-start等命令(详见 快速开发模式说明);离线环境记住一条命令:./scripts/start_all.sh --no-pull,跳过镜像拉取直接用本地镜像。

总结

到这里,WeKnora 的 Docker 部署、避坑与生产环境优化就串成了一条完整路径:自查 → 3 步启动 → 改配置 → 按场景选环境。后续如果想扩展能力,可以研究 内置模型声明式配置 或开启知识图谱(NEO4J_ENABLE)等进阶项。

【免费下载链接】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/7 1:54:59

Web前端特效开发实战:从CSS动画到Canvas粒子与3D交互

1. 项目背景:为什么“特效部分”是前端开发不可或缺的一环在 Web 项目迭代到一定阶段后,功能逻辑逐渐稳定,视觉表现就成了影响用户体感的关键因素。很多开发者会有这样的体验:功能都通了,接口也联调完了,但…

作者头像 李华
网站建设 2026/9/7 1:54:43

MCP协议详解:大模型时代的模型上下文协议与工具调用标准化

简介:MCP协议(Model Context Protocol,模型上下文协议)由Anthropic推出,是一种开源协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成。这份PDF系统讲解了MCP的核心理念、…

作者头像 李华
网站建设 2026/9/7 1:54:40

Python期末试卷复习攻略:五大核心模块与压轴题拆解

简介:这套《Python程序设计》期末试卷及答案(共2套)整合为一份138KB的PDF文档,适合高校计算机相关专业学生、Python自学初学者作为考前自测与查漏补缺材料。试卷覆盖选择题、填空题、编程题和综合题四大题型,知识点涉及…

作者头像 李华
网站建设 2026/9/7 1:54:38

100.吃透异步接口本质!FPGA UART 时序预算与过采样机制深度拆解

摘要 FPGA接口设计是数字系统设计的核心环节,直接决定板级信号质量与系统稳定性。本文以UART串口为工程载体,从接口电气特性、FPGA内部逻辑实现、时序约束到板级调试,完整演示一个可落地的接口设计流程。全文基于Xilinx Artix-7系列器件与Vivado 2018.3工具链,所有代码经过…

作者头像 李华
网站建设 2026/9/7 1:52:28

模拟电子技术期末复习:核心考点、题型拆解与三周冲刺策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 1:50:10

嵌入式ADC深度解析:从模拟信号到STM32实战

做嵌入式开发这几年,我越来越觉得ADC这玩意儿就像是单片机感知物理世界的一扇窗。说它是嵌入式里最重要的外设之一,一点都不夸张。温度、电压、电流、压力、光照,这些真实世界里的模拟量,最终都要靠 ADC 变成单片机认识的数字&…

作者头像 李华