从零用 Docker 部署 WeKnora 开源知识库的完整指南:5 步快速上手
发布时间:2026/9/6 22:32:37 锦皓数字建站

从零用 Docker 部署 WeKnora 开源知识库的完整指南5 步快速上手【免费下载链接】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/WeKnoraWeKnora 是一个开源的 LLM 知识平台能把 PDF、Word、网页等原始文档变成可问答的 RAG 知识库、可自主推理的 Agent 和自动维护的 Wiki。本文带你完成 WeKnora 的 Docker 部署从环境自检到一键启动再到生产优化要点全程只需敲 4 条命令。读完本文你会得到一张环境需求表、一条最短部署路径、一份「真正要改的配置」清单以及生产环境的安全与性能要点。环境准备部署前花 2 分钟确认本章给你一张硬件需求表和几个自检动作避免装到一半卡在资源不足。需求表配置项最低要求说明CPU2 核文档解析和 embedding 是 CPU 密集操作4 核更从容内存4GB解析大 PDF、扫描件时占用明显8GB 更稳磁盘20GB 空闲镜像 数据库 文档文件都会持续占用Docker已安装且服务运行需要 Docker Composedocker compose或docker-compose网络可拉取镜像离线环境可提前导入镜像启动时用--no-pull环境自检启动前确认三件事即可执行docker info确认 Docker 服务在运行执行nproc和free -h确认 CPU 与内存满足上表确认 80、8080 端口未被占用可用netstat -tulpn | grep -E :80|:8080。仓库自带./scripts/start_all.sh -c也能做一次完整环境检查包括 Ollama 和磁盘空间。快速上手5 步启动 WeKnora本章是最小组装路径先克隆、再配置、最后启动每步都有验证点。第 1 步克隆仓库git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora第 2 步准备环境变量cp .env.example .env.env.example里每个变量都有中文注释直接复制后按需修改。核心服务用默认值就能跑起来真正必填的只有数据库账号密码和模型配置详见后文「关键配置」。第 3 步拉取镜像docker compose pull第 4 步启动核心服务docker compose up -d启动后执行docker compose ps应看到 frontend、app、docreader、postgres、redis 五个容器全部 healthy。仓库也提供一键脚本./scripts/start_all.sh它会顺带检查并拉起本地 Ollama适合完全不想手动操作的场景。第 5 步打开界面完成初始化浏览器访问http://localhost注册第一个账号然后在「设置 → 模型」里配置对话模型LLM和向量模型Embedding支持 OpenAI、DeepSeek、Qwen、Ollama 等 20 提供商。配置完上传第一篇文档就能在问答界面检索你的知识库了。看懂内部5 个核心容器如何协同本章讲清端口、依赖和数据流向出问题时你能定位到具体是哪个组件。组件职责一览组件端口职责依赖frontend80Nginx 托管前端静态资源并把/api反向代理到 appappapp8080Go 主服务API、RAG 流水线、Agent、任务队列postgres、redis、docreaderdocreader50051gRPC不映射到宿主机文档解析PDF、Word、Excel、网页等 10 格式无postgres5432仅容器网络ParadeDB 镜像主数据库 pgvector 向量检索无redis6379仅容器网络任务队列与流处理无启动顺序由 compose 的健康检查保证postgres 和 docreader 先就绪app 才启动frontend 最后等 app 变 healthy 才放行。数据流向一次「上传并问答」的完整链路是文档经 frontend 传给 appapp 调 docreader 解析成文本块做 embedding 后写入 postgres提问时 app 在 postgres 里做向量关键词混合检索把命中的片段连同问题一起交给外部 LLM 生成带引用的回答。异步任务解析、摘要、图谱抽取全部走 redis 队列由 app 内的工作池消费。可选组件按需开启 Profile核心服务之外其余组件都放在 Docker Compose Profile 里需要时加参数启动neo4j知识图谱7474/7687、minio对象存储9000/9001、qdrant/milvus替换向量库、searxng自建网页搜索8888、langfuse链路追踪3000、mcpMCP Server8082。多个可组合docker compose --profile neo4j --profile minio up -d。完整特性可一步到位--profile full。关键配置只有这几项真正需要改本章列出 .env.example 中建议你动手改的字段其余保持默认即可。# ---- 数据库默认值可直接用多用户共享部署建议改密码---- DB_USERpostgres # 默认 postgres DB_PASSWORDpostgres123!# # 默认值生产必改 DB_NAMEWeKnora # 默认 WeKnora # ---- Redis默认密码---- REDIS_PASSWORDredis123!# # 生产必改 # ---- 存储与向量库默认本地磁盘 postgres 向量---- STORAGE_TYPElocal # 可选 minio/s3/cos/oss 等 RETRIEVE_DRIVERpostgres # 可选 qdrant/milvus/opensearch 等 # ---- 模型服务用本地 Ollama 时保持默认即可---- OLLAMA_BASE_URLhttp://host.docker.internal:11434 OLLAMA_OPTIONALtrue # Ollama 不可用时只告警不阻断 # ---- 安全密钥生产必改---- JWT_SECRETweknora-jwt-secret # 留空则启动时随机生成 SYSTEM_AES_KEYweknora-system-aes-key-32bytes!! # 必须 32 字节 # 丢失则库内加密的 API Key 全部不可恢复 # ---- 注册开关生产建议关闭公开注册---- DISABLE_REGISTRATIONfalse # 默认 false生产建议 true两点提醒SYSTEM_AES_KEY是 AES-256 主密钥用于加密数据库里所有 API Key 和模型凭证生产环境必须显式设置并妥善备份丢失意味着已加密字段全部作废。模型对话/向量/Rerank默认在界面里配置而不是.env启动后到「设置」页填写即可无需改代码。生产与优化安全清单和性能旋钮本章分安全、性能两小节用清单过一遍即可。安全清单修改所有默认密码DB_PASSWORD、REDIS_PASSWORD、MinIO 账号若启用。重新生成JWT_SECRET和 32 字节的SYSTEM_AES_KEY并备份到密钥管理工具。设置DISABLE_REGISTRATIONtrue新成员走管理员邀请。部署在内外网隔离环境不要直接暴露公网必须对外时加 HTTPS 反向代理并收紧防火墙规则。确认GIN_MODErelease默认即生产模式禁用 Swagger 文档。为容器设置 CPU/内存限制配置日志轮转避免日志撑满磁盘。定期升级镜像版本跟随官方安全补丁升级方式.env中设WEKNORA_VERSION后重新docker compose pull docker compose up -d。性能要点解析吞吐大批量 PDF 时调大DOCREADER_PDF_RENDER_PARALLELISM渲染并行进程数和DOCREADER_ODL_MAX_WORKERSCPU 富余时收益明显。任务并发Asynq 工作池默认核心并发 8、富化并发 12可在.env的WEKNORA_ASYNQ_*_CONCURRENCY调整也能在系统设置页运行时热调无需重启。Embedding 限流调用远程模型出现 429 时调小CONCURRENCY_POOL_SIZE默认 5。向量库选型知识库超过百万级 chunk 时可切换RETRIEVE_DRIVER到 Qdrant/Milvus/OpenSearch或保留默认 postgres 的 HNSW 索引对 1024 维向量有加速。资源监控docker stats看容器水位任务积压、失败重试可在前端「系统管理 → 运行时队列」面板查看这是生产排障最有用的入口。收尾场景速查表场景建议做法本地体验核心五容器docker compose up -d即可模型用 Ollama 或任意云端 API开启知识图谱docker compose --profile neo4j up -d并在.env设NEO4J_ENABLEtrue构建阶段会调用大模型耗时较长启用对象存储docker compose --profile minio up -d.env中STORAGE_TYPEminio并配置 endpoint/桶名链路追踪接入 Langfuse Cloud填两把 key 即可或--profile langfuse自建离线环境有网机器docker compose pull后导出镜像离线机器导入后用./scripts/start_all.sh --no-pull启动开发改代码用 docker-compose.dev.yml 只起基础设施前后端本地跑make dev-start make dev-app make dev-frontend遇到问题优先看 docs/QA.md 的官方 FAQ 和 docs/ 目录下的专题文档如 docs/开发指南.md覆盖模型配置、图片失效、端口冲突等高频坑。部署完成后建议从一篇你最常查的文档开始建库先跑通「上传 → 解析 → 问答」闭环再逐步叠加图谱、Agent 和 IM 渠道等能力。【免费下载链接】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),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。