MCPSERV.CLUB
LibreBooking

LibreBooking

Self-Hosted

Open‑source resource scheduling for teams

Active(81)
595stars
0views
Updated Jul 31, 2025
LibreBooking screenshot 1
1 / 5

Overview

Discover what makes LibreBooking powerful

LibreBooking is a fully self‑hosted, PHP‑based resource scheduling engine that extends the legacy Booked Scheduler codebase. From a developer’s standpoint it functions as a modular web application that exposes both a rich UI and a set of RESTful endpoints for programmatic access. The core business logic revolves around **resource definition, availability calculation, reservation lifecycle management**, and **quota enforcement**. All interactions are performed through a clean MVC architecture powered by Symfony components, with the front‑end rendered via Twig templates and Bootstrap 5 for responsiveness.

Language & Framework

Database

Template Engine

Plugin System

Overview

LibreBooking is a fully self‑hosted, PHP‑based resource scheduling engine that extends the legacy Booked Scheduler codebase. From a developer’s standpoint it functions as a modular web application that exposes both a rich UI and a set of RESTful endpoints for programmatic access. The core business logic revolves around resource definition, availability calculation, reservation lifecycle management, and quota enforcement. All interactions are performed through a clean MVC architecture powered by Symfony components, with the front‑end rendered via Twig templates and Bootstrap 5 for responsiveness.

Architecture

  • Language & Framework: PHP 8.2+ with a lightweight Symfony component set (Routing, HttpFoundation, EventDispatcher). The codebase avoids full‑stack frameworks to keep the footprint small while still benefiting from Symfony’s best practices.
  • Database: MySQL 5.5+ (or MariaDB) is the default persistence layer, accessed through PDO. The schema is normalized and contains tables for users, roles, resources, reservations, quotas, and plugin metadata.
  • Template Engine: Twig provides a declarative way to compose the UI, enabling developers to override templates without touching core logic.
  • Plugin System: LibreBooking implements a service‑provider pattern that scans a plugins/ directory. Each plugin can register routes, event listeners, and Twig extensions, making it straightforward to add features such as Google Calendar sync or custom payment gateways.
  • Webhooks & API: A RESTful API exposes CRUD operations for resources and reservations. Webhook endpoints can be configured per resource to notify external services on booking events.

Core Capabilities

  • Multi‑resource & waitlist support: Developers can expose a catalog of resources (rooms, equipment, vehicles) and let users queue for unavailable slots.
  • Role‑based access control: Built on Symfony’s security component, roles like ROLE_ADMIN, ROLE_USER, and custom groups can be defined in the DB.
  • Quota & credit system: Reservations consume credits; admins can set per‑user or per‑role quotas, and developers can hook into the credit engine to implement custom billing logic.
  • Advanced reporting: DataTables integration allows server‑side paging, sorting, and filtering of reservation logs, which can be consumed by external BI tools via the API.
  • ICS integration: Resources expose iCalendar feeds; plugins can push events to Outlook or Thunderbird calendars.

Deployment & Infrastructure

LibreBooking is designed for easy self‑hosting:

  • Docker images are available on Docker Hub (librebooking/librebooking) and include all PHP extensions needed.
  • The application can run on any LAMP stack; only a web server (Apache/Nginx) and MySQL are required.
  • For scalability, the stateless PHP front‑end can be load‑balanced across multiple instances behind a reverse proxy. Sessions are stored in Redis or the database to support horizontal scaling.
  • Continuous integration pipelines publish releases automatically, and the docker-compose.yml file in the repo demonstrates a ready‑to‑run stack.

Integration & Extensibility

  • Plugin API: Plugins register services via a simple PHP array, allowing developers to add new routes, templates, or database tables without modifying core files.
  • Webhooks: The webhook/ endpoint accepts POST requests with JSON payloads; developers can configure multiple URLs per resource to trigger CI/CD pipelines, Slack notifications, or custom microservices.
  • OAuth & SSO: While not shipped by default, the security layer can be extended to support OAuth2 or SAML via third‑party bundles.
  • Theme Customization: Bootstrap variables can be overridden in the themes/ directory, enabling brand‑specific UI without touching core CSS.

Developer Experience

  • Documentation: The Wiki provides architecture overviews, plugin authoring guides, and API references. Inline PHPDoc comments aid IDE auto‑completion.
  • Community: An active Discord channel and GitHub Discussions allow rapid feedback. Issue templates enforce consistent bug reports, while pull request guidelines streamline contributions.
  • Configuration: A single .env file manages database credentials, mailer settings, and feature toggles. The admin UI exposes most runtime options (e.g., default quota values, email templates).
  • Testing: PHPUnit test suites cover core logic; developers can add integration tests against the API to validate custom plugins.

Use Cases

  • Educational Institutions: Schedule classrooms, labs, and equipment with fine‑grained quota limits per department.
  • Co‑working Spaces: Offer room reservations and waitlists, integrate with Stripe for paid bookings via a custom plugin.
  • Event Management: Expose venue resources, push booking confirmations to Google Calendar through the built‑in iCalendar feed.
  • Internal IT Services: Automate resource booking for hardware, with webhooks triggering provisioning scripts.

Advantages

  • Open‑source & GPLv3: No licensing costs and full source visibility, ideal for compliance‑heavy environments.
  • Performance: Lightweight PHP code with minimal dependencies ensures low memory usage; MySQL queries are indexed for fast lookup of availability windows.
  • Flexibility: The plugin architecture and REST API make it trivial to extend or replace components (e.g., swap MySQL for PostgreSQL, add a GraphQL layer).
  • Community & Support: Active development and rapid issue resolution reduce the learning curve for new contributors.

LibreBooking delivers a production‑ready, extensible booking engine that lets developers focus on business logic rather than reinventing the wheel. Its clear separation of concerns, coupled with a

Open SourceReady to get started?

Join the community and start self-hosting LibreBooking today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
GPL-3.0
Stars
595
Technical Specs
Pricing
Open Source
Database
MySQL
Docker
Official
Supported OS
LinuxDocker
Author
LibreBooking
LibreBooking
Last Updated
Jul 31, 2025