LibreKB 介绍与选型指南
LibreKB v2.3.3(michaelstaake/LibreKB,PHP 8.4+MySQL,GPL-3.0)介绍与选型:定位、版本演进、MVC 架构、功能清单、官方六步安装、适用场景与风险,及与 BookStack/DokuWiki/osTicket 的量化对比(2026-11-01 溯源)。
LibreKB 介绍与选型指南
目标:为内网自建知识库/帮助台选型提供 LibreKB(michaelstaake/LibreKB)的完整认知地图——定位、架构、功能、上手路径与量化竞品对比。本文全部结论来自官方仓库与 GitHub 公开数据联网溯源(查询日期 2026-11-01),实测细节见本专栏其余三篇。
一、环境信息
- 软件名称:LibreKB(仓库
michaelstaake/LibreKB) - 最新稳定版:v2.3.3(GitHub Releases atom,条目标注 2026-10-30 更新;查询日期 2026-11-01)
- 许可证:GPL-3.0(仓库 LICENSE 文件)
- 运行要求:PHP 8.4 或更新、MySQL 或 MariaDB、支持
.htaccess重写的 Web 服务器(Apache、LiteSpeed、OpenLiteSpeed、Lighttpd) - 必需 PHP 扩展:
pdo_mysql、curl、mbstring、fileinfo - 官方容器形态:
Dockerfile基于php:8.4-apache,官方docker-compose.yml搭配mysql:8.0 - 社区热度:GitHub stars 62(shields.io 徽章数据,查询日期 2026-11-01)
- 技术栈:PHP 原生 MVC + MySQL,前端 Bootstrap + TinyMCE,邮件走 PHPMailer
二、软件概述
2.1 定位与一句话价值
LibreKB 官方 README 自述为 "Knowledge Base Web App - Free, Open Source, Self Hosted, PHP/MySQL"——一个用任意 LAMP 主机就能跑起来的开源知识库 Web 应用。它面向的典型场景是:项目/产品/团队对外或内部的常见问题文档站(帮助台知识库),支持分类嵌套、文章富文本编辑、附件下载、站内搜索、活动日志,以及自 v2.2.0 起的只读 JSON API。
💡 技术拓展:「帮助台(Helpdesk)」指面向用户的问题自助与工单体系;LibreKB 只做其中的知识库/自助文档层,不含工单流转(同类需求可对比 osTicket,见第七章)。
2.2 版本演进(GitHub Releases atom 实查,2026-11-01)
| 版本 | 条目更新时间 | 关键变化 |
|---|---|---|
| v1.3.1 | 2024-12-06 | v1 末期维护版 |
| v2.0.0 | 2025-07-19 | 重写为 MVC 架构,引入 /install 安装器与 /upgrade 升级器 |
| v2.0.1 | 2025-08-05 | 依据社区反馈移除在线更新检查,改为手动查版本 |
| v2.1.0 | 2025-12-29 | 新增文章附件(attachments 表与 /attachment/{id} 下载路由) |
| v2.2.0 | 2026-10-19 | 新增只读 JSON API(/api/v1/*,默认关闭) |
| v2.3.0 | 2026-10-19 | 2.3 系列起点 |
| v2.3.1 | 2026-10-20 | 快速修复 |
| v2.3.2 | 2026-10-27 | 快速修复 |
| v2.3.3 | 2026-10-30 | 当前最新稳定版 |
节奏解读:v2.0.0(2025-07)完成架构重写后约一年半只出了 v2.0.1/v2.1.0 两个功能版;2026-10 中旬两周内密集发布 v2.2.0→v2.3.3 共 5 个版本(API 上线后进入活跃修复期)。对选型而言:项目处于「小作者、低星、但近期活跃」的组合状态。
2.3 作者与治理
单一维护者项目(michaelstaake),无独立官网,文档以仓库 README 为主,问题反馈走 GitHub Issues。无商业实体、无付费支持层。
三、核心架构
3.1 前端控制器与路由
所有请求由 index.php 接收,Apache 靠自带 .htaccess 把非真实文件的请求重写进前端控制器(子目录部署需打开 RewriteBase 注释)。路由集中在 routes.php,声明式注册公开路由(首页/分类/文章/搜索/附件/登录/密码重置)、/admin 管理路由组(带 auth 与 role:admin,manager、role:admin 三级中间件)以及 /install、/upgrade 特殊路由。
3.2 MVC 分层
controllers/:HomeController、ArticleController、CategoryController、AdminController、ApiController、InstallController、UpgradeController、SearchController、AttachmentController、ProfileController、UserController、PasswordController、LogController 等;models/:Database、Article、Category、Attachment、FileStorage、Setting、User、Search、Email、Log;views/:前台 main 布局与后台 admin 布局模板;vendor/:随包分发 PHPMailer、Bootstrap、TinyMCE 等第三方资源,无需 Composer 联网安装。
3.3 数据模型
安装器建 6 张表:users(含 group 预定义用户组、密码重置字段)、settings(name/value 键值对,站点配置全在此)、articles(number/title/slug/category/content/order/status/featured)、categories(支持 parent 自引用嵌套)、log(谁-做了什么-对什么-何时)、attachments(v2.1.0 引入,original_name/stored_name/extension/mime_type/size)。时间字段均为 VARCHAR 存储的 Y-m-d H:i:s 字符串,是该项目轻量取向的直接体现。
3.4 安全机制
- 会话:PHP session +
HttpOnly; SameSite=LaxCookie,响应头带X-Frame-Options: DENY; - CSRF:所有后台表单含
csrf_token隐藏域,POST 校验失败返回 403; - 富文本入库与渲染前经
HtmlSanitizer::clean()清洗; - API 密钥比较用
hash_equals(sha256, sha256)防时序侧信道; - 上传目录
storage/uploads/attachments由程序自动写入Require all denied的.htaccess,文件以 32 位随机十六进制名落盘,不可直接 URL 访问,只能走/attachment/{id}受控下载。
3.5 配置模型
双层配置:文件层 config.php(由 config.example.php 复制,数据库连接、systemURL、SMTP 邮件、bypassRequirements)+ 数据库层 settings 表(站点名、可见性、外观、编辑器、API、维护模式,后台可视化修改)。config.php 内置一个 /.dockerenv 探测分支:容器环境自动套用 Docker 默认值(详见《LibreKB 2.3.3 配置参数详解》)。
四、功能特性
官方 README 特性清单(逐条对照源码核实):
| 特性 | 说明 |
|---|---|
| 100% 自由开源 | GPL-3.0,无功能阉割 |
| 极低部署门槛 | 任意支持 .htaccess 的 PHP 主机/虚拟主机的/LAMP/Docker 均可 |
| 分钟级安装 | /install 向导建表并创建管理员 |
| 品牌定制 | General 设站点名、Appearance 设主色/Logo/自定义 CSS/Google Fonts |
| 后台设置五分区 | General / Appearance / Editor / API / Maintenance |
| 编辑器工具栏可配 | Editor 分区勾选 TinyMCE 按钮 |
| 预定义用户组 | users.group(admin/manager 等),后台用户管理仅 admin 可见 |
| TinyMCE 富文本 | 文章正文所见即所得 |
| 分类无限嵌套 | categories.parent 自引用,前台面包屑 |
| 附件下载 | 文章可挂多个文件(白名单扩展名、单文件 ≤10 MB、单次 ≤10 个) |
| 邮件密码重置 | PHPMailer SMTP,配合 /password/reset |
| Bootstrap 响应式 | 移动端可用 |
| 只读 JSON API | v2.2.0 起,默认关闭,X-API-Key 认证,详见《LibreKB 2.3.3 API 使用详解》 |
| 维护模式 | 开启后前台与 API 统一 503/维护页 |
| 活动日志 | log 表记录登录/登出/增删改 |
五、快速开始
以下路径转述自官方 README 与仓库 Dockerfile/docker-compose.yml(2026-11-01 实查),本专栏《LibreKB 2.3.3 Docker Compose 部署指南》有端到端实测版。
5.1 裸机六步(官方 Getting Started)
- 准备 PHP 8.4+、MySQL/MariaDB,启用
pdo_mysql、curl、mbstring、fileinfo; - 文件部署到服务器,DocumentRoot 指向含
index.php的目录; cp config.example.php config.php,填数据库四要素与systemURL(含子目录路径,如https://example.com/kb/);- 建空库(数据库用户需有建表权限),保证 PHP 对
storage/uploads、storage/cache可写; - 浏览器打开
/install,输入管理员邮箱与密码,运行安装器(示例可用admin@kb.example.com/q1w2e3r4); /login登录后台;用户表非空后/install自动失效(返回 404)。
5.2 官方 Docker Compose
仓库自带 docker-compose.yml:app 服务由根目录 Dockerfile 构建(php:8.4-apache,装 pdo_mysql/mysqli/zip 扩展、开 mod_rewrite、设 upload_max_filesize=12M/post_max_size=128M),db 服务用 mysql:8.0;端口经 APP_PORT(默认 8080)映射,数据库凭据由 DB_ROOT_PASS/DB_NAME/DB_USER/DB_PASS 环境变量注入,源码目录 bind mount 到 /var/www/html,数据卷 librekb-db-data 持久化。config.php 检测到 /.dockerenv 时套用容器默认值,因此 Compose 起栈后直接访问 /install 即可。
5.3 升级
官方口径:新发布文件覆盖旧文件、保留自己的 config.php,然后访问 /upgrade。
六、适用场景与限制
6.1 适用场景
- 中小团队/开源项目的产品文档站与帮助台知识库(文章量千级以内);
- 已有 LAMP 虚拟主机、没有专职运维的环境(共享主机也能装);
- 需要把知识库内容喂给外部应用(聊天机器人、站内搜索组件)的场景——只读 JSON API 是同类轻量方案里少见的原生能力;
- 内网离线部署:全量依赖随包
vendor/分发,安装与运行不需要外网。
6.2 限制与风险
- 社区极小:62 stars、单维护者,长期维护与响应速度存在不确定性;
- 无版本历史/草稿流:文章直接覆盖更新,没有内容修订回滚(对比 wiki 类产品的 revision 机制);
- API 只读:不能通过 API 创建/修改内容,自动化写入只能走数据库或后台界面;
- 权限模型粗:预定义用户组粒度有限,无细粒度分类/文章级 ACL;
- 搜索为基础匹配(标题与内容),无高亮/分词/相关度调优;
- 无多租户/多知识库,一个实例一套库;
- 表结构用 VARCHAR 存时间与文本状态值,扩展性一般,属"够用主义"设计。
七、同类选型对比
7.1 量化对比表(GitHub/shields.io 实查,2026-11-01)
| 维度 | LibreKB v2.3.3 | BookStack | DokuWiki | osTicket |
|---|---|---|---|---|
| GitHub stars | 62 | 19k | 4.7k | 4k |
| 最新稳定版 | v2.3.3(2026-10-30) | v26.09.2 | release-2026-07-14c(tag) | v1.18.4 |
| 技术栈 | PHP 8.4 + MySQL | PHP(Laravel)+ MySQL | PHP + 纯文本文件(无数据库) | PHP + MySQL |
| 存储形态 | MySQL 6 表 | MySQL | 平面文件 | MySQL |
| 定位 | 知识库/帮助台文档 | 结构化文档/Wiki | Wiki/笔记 | 工单+帮助台 |
| 只读 API | 原生 JSON API(v2.2.0 起) | REST API | 插件生态 | 无原生 KB API |
| 许可证 | GPL-3.0 | MIT | GPL-2.0 | GPL-2.0 |
| 安装复杂度 | 极低(6 步/向导建表) | 低-中(artisan 迁移) | 极低(上传即用) | 中(含 cron/邮件管道) |
⚠️ 注意:DokuWiki 的 GitHub 仓库为官方镜像且不用 GitHub Releases 发版,表中取其最新 tag;BookStack 版本号采用「年月」式发布命名。
7.2 站内同类已交付文档
本平台同组(文档与知识库)已交付多篇实战,选型时可横向阅读:
- 《LeafWiki 介绍与选型指南》(https://www.quzuo.net/document/FZpCpV1Ws596)——Go 单二进制 wiki,与 LibreKB 同为轻量路线但无数据库;
- 《django-wiki 0.13.0 配置参数详解》(https://www.quzuo.net/document/1spme6Q1ng7J)——Python/Django 重型 wiki 代表;
- 《AmuseWiki 2.611 配置参数详解》(https://www.quzuo.net/document/OqKRpZUlNRzW)——Perl 系 wiki,同样主打低维护;
- 《AmuseWiki Docker Compose 部署指南》(https://www.quzuo.net/document/L589z4XaHJmH)——与本文专栏 B 篇同构的容器部署参考。
7.3 怎么选
- 要工单流转/客服 SLA → osTicket,LibreKB 不含工单;
- 要大团队结构化文档 + 权限细分 + 成熟生态 → BookStack,星数与功能面全面占优;
- 要零数据库、纯文件可 git 管理 → DokuWiki;
- 要PHP/MySQL 基础上的极简知识库 + 原生只读 JSON API + 分钟级安装,且接受小社区风险 → LibreKB;
- 要Go 单二进制无依赖 → LeafWiki;要深度定制 wiki 引擎 → django-wiki。
LibreKB 的差异化落点是「LAMP 上最省事的知识库 + 自带对外 JSON API」,适合把文档"发出去给程序读"的轻量集成场景。
八、参考链接
- 官方仓库:https://github.com/michaelstaake/LibreKB(README、Dockerfile、docker-compose.yml、routes.php、LICENSE 均实查于此,2026-11-01)
- Releases atom:https://github.com/michaelstaake/LibreKB/releases.atom(版本时间线来源)
- 星数/版本徽章数据:https://img.shields.io/github/stars/michaelstaake/LibreKB.json、https://img.shields.io/github/v/release/michaelstaake/LibreKB.json(2026-11-01)
- BookStack:https://github.com/BookStackApp/BookStack;DokuWiki:https://github.com/dokuwiki/dokuwiki;osTicket:https://github.com/osticket/osticket(对比数据来源,2026-11-01)
- 本专栏实测篇:《LibreKB 2.3.3 Docker Compose 部署指南》《LibreKB 2.3.3 配置参数详解》《LibreKB 2.3.3 API 使用详解》