LibreBooking 7.1.0 介绍与选型指南

LibreBooking 7.1.0 开源资源预约调度系统介绍与选型:定位、血统、架构、功能、快速开始与同类量化对比,全部数据于 2026-10-30 联网溯源。

LibreBooking自托管预约调度PHP2026/10/30

LibreBooking 7.1.0 介绍与选型指南

目标:面向需要在自有服务器上搭建「会议室/设备等资源预约」系统的运维与开发者,系统介绍开源资源预约调度系统 LibreBooking 7.1.0 的定位、血统、架构、功能与选型依据。本文版本、社区与生态数据均于查询日期 2026-10-30 从官方渠道(GitHub 仓库与 Releases、安全通告、官方文档站、shields.io 徽章、bookedscheduler.com、supersaas.com)联网溯源核对,并已在本团队自托管环境(Apache 2.4.69 + PHP 8.5.12 + MariaDB 11.8,运行版本 v7.1.0-27-g1bcf4c7aa,访问入口 http://localhost:8135)完成部署与核心功能验证。

一、环境信息

本文为认知与选型篇,以下为溯源所用的信息源与被评估对象的关键事实,均标注来源与查询日期(2026-10-30)。

项目内容来源
软件名称LibreBooking(开源资源预约/调度系统)GitHub 仓库 README
当前稳定版7.1.0(GitHub Releases 最新版,2026-10-30 查询;本团队实测运行版本为 v7.1.0-27-g1bcf4c7aa,系统页脚实显)GitHub Releases + 实测页脚
开源许可GPL-3.0仓库 LICENSE.md
上游血统Booked Scheduler 的 fork,基于其 2020 年发布的最后一个开源版本,此后独立演进并明显分化README「About」章节
GitHub 社区数据840 stars、395 forksshields.io GitHub 徽章,查询日期 2026-10-30
Docker 镜像拉取量约 150k 次(librebooking/librebooking)shields.io Docker Hub 徽章,查询日期 2026-10-30
运行要求PHP ≥ 8.2、Apache ≥ 2.4、MySQL ≥ 8.0 或 MariaDB ≥ 10.6、ComposerREADME「Installation & Deployment」
界面语言41 种语言文件(含简体中文 zh_cn 与繁体中文 zh_tw)源码 lang/ 目录实数
插件类型8 类挂载点(Authentication、Authorization、Permission、Export、PreReservation、PostReservation、PostRegistration、Styling)源码 plugins/ 目录实数
文档站librebooking.readthedocs.ioREADME 徽章

💡 说明:表中星数/拉取量为查询时点的快照值,用于量级判断而非精确对账;GitHub 官方 API 存在匿名限流,星数取证按惯例走 shields.io 徽章接口。

二、软件概述

LibreBooking 的官方自我定位是「开源的资源预约调度解决方案(open-source resource scheduling solution)」:为组织提供一个灵活、移动端友好、可扩展的界面,管理资源的预约——典型对象是会议室、实验仪器、车辆、场地、工位这类「一次只能被一方占用一段时间的实体」。项目托管在 GitHub LibreBooking/librebooking 仓库,主开发分支为 develop,采用 GPL-3.0 许可证,由社区维护并配有 Discord 讨论频道与 ReadTheDocs 文档站。

它的血统值得单独一提:LibreBooking 是老牌预约系统 Booked Scheduler 的 fork,起点是 Booked 2020 年发布的最后一个开源版本。此后 Booked 转向纯商业托管服务(bookedscheduler.com,按月订阅,见第七节对比),而 LibreBooking 沿开源路线持续演进:界面从旧版升级到 Bootstrap 5、重写主题体系、引入插件化架构与 DataTables 列表,并集中修复了多起安全问题,至今已与原项目明显分化。对在用老版 Booked 开源版的团队而言,LibreBooking 是事实上唯一的开源延续选项。

其典型使用形态是「一个组织内部的资源预约入口」:管理员定义排程(Schedule,一份带时区的可用时间布局)与资源(Resource,可预约对象),用户在日历上挑选空闲时段下单;资源可配置审批(requiresApproval)、自动授权(autoAssignPermissions)、最短提前通知、预约后缓冲时间等约束,再叠加按用户/群组的配额与积分控制用量。

与「服务预约」的边界:LibreBooking 的领域模型围绕「排程—资源—预约—用户」构建,本质是面向组织内部的资源调度;它不是面向外部客户的「服务—提供者—客户」型预约 CRM(那是 Easy!Appointments 一类系统的领域),也不是个人日历工具(CalDAV 服务器的领域)。

💡 技术拓展:自托管「预约/调度」类系统按业务模型分三个流派,选型前先对号入座——

流派核心模型代表开源项目典型场景
资源预约型排程—资源—预约,占用制LibreBooking会议室、仪器、车辆、场地
服务预约型服务—提供者—客户,按人下单Easy!Appointments诊所、美业、咨询按技师/医生预约
会议约时间型个人空闲链接,类 CalendlyCal.com给客户发「选我的空闲时间」链接

三者领域模型不同、不可直接互换:客户按「技师」预约选服务预约型,员工按「房间」占用选资源预约型。

三、核心架构

3.1 技术栈构成

依据源码内 AGENTS.md(仓库自带的架构说明,2026-02-16 版)、README 与 docs/source/ 目录(查询日期 2026-10-30),LibreBooking 是一个经典的 PHP 单体 Web 应用:

层技术依据
语言运行时PHP ≥ 8.2,必需扩展:ctype、curl、fileinfo、intl、json、mbstring、mysqli、openssl、pdo、pdo_mysql、tokenizer、xml;可选:bcmath(AD 认证)、gd(图像处理)、ldap(LDAP 认证)README「Manual Installation」
架构模式MVP(Model-View-Presenter):Pages(薄页面绑定)/ Presenters(编排逻辑) / Domain(领域实体与仓储)三层分离源码目录结构(Pages/、Presenters/、Domain/)
模板引擎Smarty 5.8+(编译缓存于 tpl_c/)AGENTS.md「Template Engine」
前端Bootstrap 5 + jQuery,响应式布局AGENTS.md「Frontend」
REST API/WebServices/ 目录独立实现,JSON 响应,会话令牌鉴权(X-Booked-SessionToken / X-Booked-UserId 请求头)docs/source/API.rst + 实测
数据库MySQL ≥ 8.0 或 MariaDB ≥ 10.6,PDO/mysqli 预处理语句访问README + AGENTS.md「Database」
认证默认口令哈希为加盐 SHA-1(sha1(password + salt)),认证后端可插件化替换(LDAP/AD、OAuth2、SAML 均有官方配置文档)源码 lib/Application/Authentication/PasswordEncryption.php + docs/source/Oauth2-Configuration.rst、SAML-Configuration.rst

本团队实测环境的服务端响应头为 Apache/2.4.69 (Debian) PHP/8.5.12,说明 8.x 后期 PHP 可正常运行;但生产选型仍建议以 README 明确支持的 PHP 8.2–8.5 区间为准(仓库 CI 矩阵覆盖 8.2/8.3/8.4/8.5)。

3.2 领域模型与权限模型

  • 排程(Schedule):一份可用时间布局——每日起止时间、时段粒度、可用工作日,并绑定一个时区。注意示例数据内置的默认排程时区为 America/New_York,跨夏令时边界时周期预约实例会显示 1 小时偏移(本团队实测:同一每周规则,10-31 实例与 11-03 实例的 UTC 时间相差 1 小时),生产部署应重建本地时区排程;
  • 资源(Resource):被预约对象,可设置审批开关(requiresApproval)、自动授权全员(autoAssignPermissions)、预约缓冲时间(bufferTime)、最短提前通知(minNotice)、关联群组等;
  • 预约(Reservation):支持单次与周期两种形态,周期规则(recurrenceRule)覆盖每日/每周/每月/自定义日期并可设终止日期(repeatTerminationDate);一次预约可关联多个资源;
  • 用户与 RBAC:应用管理员 / 群组管理员 / 普通用户三级角色;资源级授权落在 user_resource_permissions 权限表,autoAssignPermissions=true 时新资源自动授权全员,false 时须显式授权;
  • 配额与积分(Quotas and Credits):按用户/群组限制预约时长与次数,适合仪器共享这类用量管控场景。

权限模型本团队完成端到端实测:创建资源时 autoAssignPermissions=false 后,未授权用户对该资源发起预约被拒,返回 You do not have permission to access one or more of the requested resources.;显式授权后同一用户预约成功(HTTP 201)。

3.3 扩展机制

  • 8 类插件挂载点(源码 plugins/ 目录实数):Authentication(认证后端)、Authorization(授权策略)、Permission(资源权限)、PreReservation/PostReservation(预约前/后校验与联动)、PostRegistration(注册后处理)、Export(导出格式)、Styling(样式)——每类插件配独立 config.dist.php;
  • 企业身份源对接:官方文档提供 OAuth2 与 SAML 两篇配置指南;
  • 主题体系:config.php 的 css.theme 支持 6 种内置配色(default、dimgray、dark_red、dark_green、french_blue、orange),并可覆盖 Web/css/librebooking.css 深度定制。

3.4 部署形态与版本安全策略

官方提供两种主流部署形态:

  1. 传统 LAMP 部署:从 GitHub Releases 下载发行包解压到 Web 目录,Composer 安装依赖,复制 config.dist.php 为 config.php 后浏览器进入安装向导完成建表与初始化;
  2. 容器化部署:官方维护 LibreBooking/docker 编排仓库,配套 Docker Hub 镜像(拉取量约 150k),本团队实测即采用该形态(细节见本站部署篇)。

⚠️ 注意:LibreBooking 的安全修复不回移(no backport)——老版本不会有补丁分支,生产必须跟随最新稳定版。截至查询日期 2026-10-30,仓库顶部悬挂两条安全警告:<7.1.0 存在未认证攻击者伪造 Remember Me 登录 cookie 冒充任意用户(含管理员)的严重漏洞(GHSA-mvjx-72w3-wqhp,7.1.0 直接移除了 Remember Me 功能);<7.0.0 存在未认证攻击者接管管理员账号的严重漏洞(GHSA-3356-vjx2-5pg8,源于 Web/install/migrate.php 暴露)。选型即选 7.1.0 起步,且安装完成后必须删除或封锁 Web/install 目录。

四、功能特性

以下功能清单依据官方 README 特性列表归纳,并经本团队实测核对(实测环境 v7.1.0-27-g1bcf4c7aa):

预约核心

  • 多资源预约与候补(waitlists):热门资源可排队候补;
  • 周期预约:每日/每周/每月/自定义日期规则 + 终止日期,实测「每周二 × 3 周」规则创建后正确展开为 3 条实例(HTTP 201);
  • 审批工作流:资源级 requiresApproval 开关,管理员批准后生效;
  • 配额与积分:按用户/群组控制预约用量;
  • 预约约束:缓冲时间、最短提前通知(minNotice,实测创建/修改/删除三档独立设置)、邮件提醒(reminder,提前量以 value + interval 表示)。

管理与权限

  • 三级 RBAC(应用管理员/群组管理员/用户)+ 群组体系;
  • 资源级授权与自动授权开关(实测有权限/无权限行为对照,见 3.2);
  • 细粒度用量报表(granular usage reporting),DataTables 高级列表。

界面与体验

  • Bootstrap 5 响应式界面,手机端可完成预约操作;
  • 6 种内置主题配色 + 自定义 CSS;
  • 41 种界面语言(含简繁中文)。

集成与扩展

  • REST API:认证、资源、预约、用户等资源域的 JSON 接口,本团队实测完成认证(200)、创建资源(201)、创建单次/周期预约(201)、跨用户权限校验(400)全链路;
  • ICS 日历订阅:Outlook/Thunderbird 可订阅预约日历;
  • 邮件通知与预约提醒;ReCaptcha v3 人机验证;
  • 8 类插件挂载点 + OAuth2/SAML 身份源文档。

五、快速开始(最小可用示例)

以下为官方推荐的最小上手路径,摘自 README「Installation & Deployment」与 docs/source/INSTALLATION.rst(查询日期 2026-10-30);本团队按此流程完成部署验证(安装向导 25 个步骤全部 Success,含建表、版本升级脚本与示例数据导入)。

  1. 准备环境:一台装好 Apache ≥ 2.4 + PHP ≥ 8.2(必需扩展清单见 3.1)+ MySQL ≥ 8.0 或 MariaDB ≥ 10.6 的服务器,并安装 Composer;
  2. 获取发行包:从 GitHub Releases 下载最新发行包(7.1.0)解压到 Web 目录(或 git clone 仓库);
  3. 写配置文件:复制 config/config.dist.php 为 config/config.php,填写 database 段(主机/库名/账号)与 install.password(安装口令)等关键项;
  4. 跑安装向导:浏览器打开 /Web/install,输入安装口令 → 填数据库管理员凭据 → 执行安装(可选导入示例数据,自带 admin 示例账号与默认排程);
  5. 登录后台:访问 /Web 登录,示例数据账号改密后即可创建排程与资源,预约功能即对外可用。

⚠️ 注意:安装完成后立即删除或封锁 Web/install 目录——migrate.php 暴露是 7.0.0 安全通告(GHSA-3356-vjx2-5pg8)的直接成因;同时建议关闭 API 开关(默认关闭)或为其单独规划鉴权,示例数据自带的演示账号须全部改密或停用。

💡 说明:本文示例演示账号统一为 admin + q1w2e3r4。本团队实测中,API 默认处于关闭状态,需在配置中显式开启后 /Web/Services/ 接口才可用;安装向导、登录、资源与预约创建的完整命令级实录见本站部署篇与运维篇。

六、适用场景与限制

6.1 适合的场景

场景契合点
企业/园区会议室与工位预约排程—资源模型原生贴合,多资源预约+审批流
实验室仪器/设备共享配额与积分控制用量,候补队列消化热门时段
内部车辆/场地/体育设施资源级授权区分部门可见性,缓冲时间防连排
培训教室与讲师档期周期规则批量排课,报表统计使用率

6.2 已知限制

  • 安全修复不回移:无老版本补丁分支,必须跟进最新稳定版(现网两条严重漏洞通告均要求 ≥7.1.0);
  • 默认口令哈希为加盐 SHA-1:强度弱于 bcrypt/argon2,属安全审计关注点;认证后端可插件化,但口令存储方案本身需在配置层评估(本站配置篇有专节);
  • 单库单实例:无官方集群方案,横向扩展需自行处理数据库与会话层;中小组织(数百至数千用户)完全够用,不适合超大流量平台直接套用;
  • 无原生移动端:移动体验依赖 Bootstrap 5 响应式网页;
  • develop 分支质量波动:本团队实测 develop 构建存在 REST API 创建用户时权限判定缺陷(管理员会话被误判为非管理员,报错 Only application administrators may create users),生产应跟随稳定 Release 而非 develop 快照;
  • 示例数据时区陷阱:默认排程时区 America/New_York,跨夏令时边界的周期预约实例偏移 1 小时(实测),部署后应重建本地时区排程;
  • GPL-3.0 传染性:二开对外分发需遵守 GPL,商业闭源集成需注意许可边界。

七、同类选型对比

7.1 量化对比

下表为 2026-10-30 经 shields.io 徽章与官方渠道溯源的同类预约/调度系统对比(Easy!Appointments 行数据引自本站已发布的选型篇,其溯源日期为 2026-10-23):

系统规模数据定位技术栈许可特色
LibreBooking 7.1.0840 stars / 395 forks / 镜像拉取约 150k(2026-10-30 溯源)组织内资源预约(排程—资源—预约)PHP 8.2 + Smarty + Bootstrap 5 + MySQL/MariaDBGPL-3.041 语言、8 类插件、REST API、ICS 订阅、配额积分、候补队列
Easy!Appointments 1.6.1≈4.5k stars / 1.6k forks / 镜像拉取约 140k(2026-10-23 溯源)服务型业务预约(服务—提供者—客户)PHP 8.2 + CodeIgniter + MySQLGPL-3.042 语言、Google+CalDAV 双向同步、REST API、超轻量
Booked Scheduler(现商业版)开源版 2020 年停更纯托管商业 SaaS不公开闭源全功能托管,订阅 $15/月(年付),支持 Stripe/PayPal 支付、SSO 与 MFA(bookedscheduler.com,2026-10-30 溯源)
SuperSaaS(商业 SaaS)官网宣称 205,000+ 企业客户通用在线预约 SaaS不公开闭源35 语言、99.99% SLA、无按座计费(supersaas.com,2026-10-30 溯源)

关键差异解读:

  • LibreBooking vs Easy!Appointments:两者同为 PHP + MySQL 的 GPL-3.0 自托管系统,星级体量相差约 5 倍(EA 社区更大),但领域模型不同——EA 的「服务—提供者—客户」模型面向对外营业的服务型业务(客户指名约某位技师/医生),LibreBooking 的「排程—资源」模型面向组织内部的资源占用(员工约会议室/仪器),互为补充而非直接竞争;EA 强在外部日历双向同步与客户自助页,LibreBooking 强在资源权限管控、配额积分与候补机制;
  • LibreBooking vs Booked Scheduler:Booked 开源版已于 2020 年停更且安全修复缺失,继续裸跑老版风险极高(7.0.0 通告的 migrate.php 漏洞即源自老血统);需要 Booked 体验但求可控的团队,迁移到 LibreBooking 是唯一开源延续路径,追求托管省心则直接买 Booked 商业订阅;
  • 自托管 vs SaaS:SuperSaaS 免运维、SLA 明确,但数据在外部第三方且按需付费;LibreBooking 换来数据自主与深度定制(插件/主题/二开),代价是自行承担安全跟进与备份运维。

7.2 选型建议

  • 会议室/仪器/车辆等内部资源预约 → LibreBooking 是当前唯一活跃的开源资源预约型系统,7.1.0 起步可直上生产;
  • 诊所/美业/咨询等对外服务预约 → Easy!Appointments 的领域模型更贴合;
  • 销售/顾问「约我时间」链接 → Cal.com 一类会议约时间型;
  • 不想自托管、要 SLA 与免运维 → SuperSaaS 或 Booked 商业托管;
  • 从老版 Booked 开源版迁移 → LibreBooking(同源血统,数据结构延续);
  • 技术约束:团队只会 PHP/想塞进现有 LAMP → LibreBooking 或 EA 均低门槛;需要 API 优先深度二开 → 两者都有 REST API,LibreBooking 另有 8 类插件挂载点与 OAuth2/SAML 文档;
  • 版本节奏:LibreBooking 处于 7.x 活跃维护期(7.0.0 → 7.1.0 连续两个安全集中修复版本),develop 分支提交频繁,社区以 GitHub Issues/Discord 为主,属于「社区驱动、无商业公司背书」的项目——生产采用前把「安全修复不回移」纳入升级纪律。

八、参考链接

  1. GitHub 仓库:https://github.com/LibreBooking/librebooking
  2. GitHub Releases(7.1.0):https://github.com/LibreBooking/librebooking/releases
  3. 安全通告 GHSA-mvjx-72w3-wqhp(Remember Me cookie 伪造,7.1.0 修复):https://github.com/LibreBooking/librebooking/security/advisories/GHSA-mvjx-72w3-wqhp
  4. 安全通告 GHSA-3356-vjx2-5pg8(migrate.php 管理员接管,7.0.0 修复):https://github.com/LibreBooking/librebooking/security/advisories/GHSA-3356-vjx2-5pg8
  5. 官方文档站:https://librebooking.readthedocs.io/en/latest/
  6. 安装文档 INSTALLATION.rst:https://github.com/LibreBooking/librebooking/blob/develop/docs/source/INSTALLATION.rst
  7. 配置文档 CONFIGURATION.rst:https://github.com/LibreBooking/librebooking/blob/develop/docs/source/CONFIGURATION.rst
  8. REST API 文档 API.rst:https://github.com/LibreBooking/librebooking/blob/develop/docs/source/API.rst
  9. 官方容器编排仓库:https://github.com/LibreBooking/docker
  10. 在线 Demo(admin/demoadmin,每 20 分钟重置):https://librebooking-demo.fly.dev/
  11. Discord 社区:https://discord.gg/4TGThPtmX8
  12. Booked Scheduler 商业版:https://www.bookedscheduler.com
  13. SuperSaaS:https://www.supersaas.com

站内延伸阅读:部署实录见《LibreBooking 7.1.0 Docker Compose 部署指南》;配置参数逐项说明见《LibreBooking 7.1.0 配置参数详解》;巡检、备份与排障见《LibreBooking 7.1.0 管理与运维实战》。