L

LibreBooking

714 stars·Office Productivity·SHA-256 checksum verified

Open-source resource scheduling solution for managing reservations of rooms, equipment, and other shared resources. Mobile-friendly, extensible.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

Free and open-source resource booking system with modern UI, Docker support, and active community.

Core Features

  • Multi-resource booking & waitlists
  • Role-based access control (admin/user)
  • Quotas and credits for reservations
  • Granular usage reports & statistics
  • Responsive Bootstrap 5 interface

What It Can't Do

  • •Requires PHP 8.2+ and MySQL 8.0+ or MariaDB 10.6+. 2. Public demo resets every 20 minutes. 3. Migration from Booked Scheduler may need adjustments. 4. Use HTTPS and regular backups in production.

Use Cases

  • Conference room and projector booking in offices
  • Coworking space desk and meeting room management
  • School lab equipment and device scheduling
  • Community venue and tool reservation

Detailed Introduction

LibreBooking is an open-source resource scheduling platform originally forked from Booked Scheduler. It provides a flexible, mobile-friendly, and extensible interface for organizations to manage reservations of rooms, equipment, vehicles, and other shared resources. Key features include multi-resource booking, waitlists, role-based access control, quotas and credits, granular reporting, a responsive Bootstrap 5 interface, custom themes, and a plugin-ready architecture. It supports Docker deployment, MySQL/MariaDB, and offers integration with calendars via ICS. The project is actively maintained with a growing community and a public demo instance available for testing.

Troubleshooting & FAQ (2)

Troubleshooting
Why do custom resource type attribute values disappear after page refresh in LibreBooking?

This is a known bug (issue #1341) caused by an INNER JOIN in the GET_ALL_RESOURCE_TYPES SQL query. When a custom attribute is not restricted to specific resource types (i.e., no rows in custom_attribute_entities), the join filters out the values, so they appear blank after reload. As a temporary workaround, edit the attribute in Admin > Manage Attributes and assign it to all or specific resource types—this adds entries to custom_attribute_entities and makes values display. For a permanent fix, edit lib/Database/Commands/Queries.php: change the INNER JOIN with custom_attribute_entities to a LEFT JOIN in the query that builds attribute_list.

GitHub Issue #1341
Troubleshooting
How to fix LibreBooking LDAP REST API login failing on PHP 8.3 with Net_LDAP2_Search::current() return type Slim error?

The API fails because PHP 8.3 emits an E_DEPRECATED notice (code 8192) from pear/net_ldap2, and Slim converts that notice into an exception. The web login does not use Slim's error handler, so it can still succeed. Preferred fix: update pear/net_ldap2 to a PHP 8.3-compatible release. If no update is available, patch vendor/pear/net_ldap2/Net/LDAP2/Search.php and add the compatibility attribute to the iterator method: #[\ReturnTypeWillChange] public function current() { ... }. Add the same attribute to key(), next(), rewind(), and valid() if similar deprecations appear. Because vendor/ is overwritten by Composer, maintain the patch with composer-patches or a private fork, then run composer update pear/net_ldap2 and restart PHP-FPM, for example: sudo systemctl restart php8.3-fpm. Temporary workaround: in plugins/Authentication/Ldap/Ldap2Wrapper.php, suppress E_DEPRECATED around the net_ldap2 code that triggers the error: $oldLevel = error_reporting(error_reporting() & ~E_DEPRECATED); try { class_exists('Net_LDAP2'); $ldap = Net_LDAP2::connect($config); // Keep the LDAP search/iteration inside this block if current() is triggered there } finally { error_reporting($oldLevel); }. As a last resort only, set error_reporting(E_ALL & ~E_DEPRECATED) before the Slim API handles requests; this hides all deprecation notices, not just the LDAP one.

GitHub Issue #1315

Tags

resource-schedulingbookingcalendarself-hostedphpmysql

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Install Docker and Docker Compose

4

Step 2: Clone the Docker repo: git clone https://github.com/LibreBooking/docker.git

5

Step 3: Run docker-compose up -d inside the directory

Install Guide
  1. Step 1: Install Docker and Docker Compose
  2. Step 2: Clone the Docker repo: git clone https://github.com/LibreBooking/docker.git
  3. Step 3: Run docker-compose up -d inside the directory
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

For Docker: docker-compose down -v to stop and remove containers and volumes. For manual install, delete the web directory and drop the database.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseGPL-3.0
Last Updated2026-10-15 07:01:15
GitHub Repository

Having issues? Check the FAQ below

2 FAQs

Similar Projects