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.ymlfile 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
.envfile 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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Feedpushr
A lightweight, pluggable feed aggregator and delivery engine
GitBucket
Scala‑powered Git platform with GitHub API compatibility
OctoBot
Open-source, customizable crypto trading bot with evolution and strategy optimization.
Papermerge
Secure, searchable document management for scanned files
ZenTao
All‑in‑one open‑source project management platform
Mindwendel
Collaborative idea‑generation and upvoting platform
