Outline 已归档停更,存在认证绕过、RCE 漏洞及 PostgreSQL v15+ 兼容性问题;推荐 MaxKB(Docker 一键、RAG 强)、WeKnora(gRPC 架构、OCR 稳定)、Wiki.js(权限细、生态全)三大替代方案。

Outline 不是当前主流 Linux 企业级开源知识库的推荐选项——它已停止维护,官方仓库自 2023 年起归档,outline/outline GitHub 仓库标记为 archived,且无活跃安全更新。生产环境直接部署会面临认证绕过、RCE 漏洞未修复、PostgreSQL 兼容性断裂(如 v15+ 连接失败)等实际风险。
如果你看到文档或教程仍在推 Outline,大概率是未更新的旧资料。真正可落地的企业级替代方案,目前有三个明确选择:MaxKB(RAG 强、Docker 一键、本地模型友好)、WeKnora(语义理解深、私有化彻底、Go + Python 混合架构)、Wiki.js(成熟稳定、权限粒度细、插件生态全)。下面以这三个为主,讲清楚「怎么装」「为什么这么装」「哪里容易翻车」。
用 Docker 装 MaxKB:最省心的 RAG 知识库启动方式
MaxKB 是目前对新手最友好的企业级知识库,核心优势是把大模型接入、向量库、Web UI 全部打包进一个镜像,不需要手动调模型服务或配 Chroma。
实操要点:
- 必须用 Ubuntu 22.04 或 CentOS 8+,内核低于 5.4 时
ollama加载模型会卡在device not ready - 安装前先跑
docker info | grep "Cgroup Driver",输出不是systemd的话,要改/etc/docker/daemon.json加"exec-opts": ["native.cgroupdriver=systemd"],否则 MaxKB 启动后无法拉起内置模型服务 - 启动命令里必须暴露
-p 3000:3000(Web)和-p 8000:8000(API),少一个端口,前端登录页就空白 - 首次访问
http://<server-ip>:3000</server-ip>时,如果卡在“加载中”,大概率是 DNS 解析失败——检查容器内是否能curl https://api.github.com,不能就需在docker run里加--dns 8.8.8.8
WeKnora 的 Go 后端 + Python 解析器通信必须走 gRPC
WeKnora 不是纯 Web 应用,它的文档解析(PDF/Word/图片 OCR)由独立 Python 服务完成,后端 Go 服务通过 gRPC 调用。跳过这层设计,直接改源码走 HTTP 调用,会导致中文分词错乱、表格识别丢失。
关键配置项:
-
config.yaml中的parser_address必须写成parser:50051(不是localhost:50051),因为两个容器在同一个 docker network 下,用 service name 才能互通 - Python 解析器容器启动时,必须挂载宿主机的
/dev/shm:加参数--shm-size=2g,否则 PDF 多页解析到第 3 页必崩,报错OSError: unable to open file - OCR 引擎默认用
paddleocr,但国产服务器若没装 CUDA,得在docker-compose.yml里把image: weknora/parser:latest换成image: weknora/parser:cpu,否则容器反复重启
Wiki.js 配 PostgreSQL 时别碰 pg_hba.conf 手动改
Wiki.js 官方文档建议手动改 PostgreSQL 的 pg_hba.conf 开放信任连接,这是最大陷阱。Linux 发行版(尤其 Ubuntu 22.04)的 postgresql@* systemd 服务会覆盖你改的配置,每次重启数据库,你的修改就丢了。
正确做法是用 docker-compose 隔离数据库:
- 不要复用宿主机 PostgreSQL,直接在
docker-compose.yml里定义dbservice,用postgres:15-alpine镜像 -
POSTGRES_DB和POSTGRES_USER必须一致(比如都设为wikijs),否则 Wiki.js 初始化时报permission denied for database "postgres" - 如果要用外部 PostgreSQL(比如公司已有集群),唯一安全方式是创建专用用户并赋权:
CREATE USER wikijs WITH PASSWORD 'xxx'; CREATE DATABASE wikijs OWNER wikijs;,然后在 Wiki.js 的config.yml里填这个用户,别开trust认证


















