LibreBooking Laravel is a modern, Laravel-based application designed to manage reservations, resources, and availability for laboratories, equipment, rooms, and facilities. This project extends the functionality of the original LibreBooking system with modern Laravel 12 components, Backpack admin panel, and a responsive interface.
Features β’ Installation β’ Configuration β’ Documentation
Before you begin, please read these important notes:
It is highly recommended to test this application using a copy of a LibreBooking 4.0 database. You may also install a completely new database if preferred.
β οΈ Warning: When migrating an existing database, irreversible structural changes are applied. Always use a backup copy before running any migration.
Existing user passwords will stop working after migration and must be reset. The installer allows resetting passwords for specific users. At minimum, it is strongly recommended to reset the password for the administrator user.
During installation, you may optionally provide additional sample data to improve the testing experience. Supplying this extra information is recommended when setting up a testing environment.
The application's appearance can be customized in config/backpack/theme-tabler.php:
- Lines 43β47: Control the background image/pattern
- Lines 48β52: Control the color scheme
Translations for English, German, and Spanish were generated with AI assistance and should be reviewed for accuracy before production use.
This section summarizes the most important migration changes introduced while moving from LibreBooking to Laravel.
The migration process (php artisan app:install-db) applies structural normalization before running the Laravel migration set.
- Primary key standardization: legacy primary keys are normalized to
id(Laravel convention), and pivot table PK columns are converted tounsignedBigInteger. - Foreign key normalization: FK columns are standardized to Laravel naming (
*_id) and type expectations (unsignedBigInteger). - Legacy FK renames: non-standard columns such as
announcementidare renamed toannouncement_id. - Constraint rebuild flow: existing foreign keys are dropped first, then schema normalization is applied, and migrations rebuild constraints.
- Announcements schema alignment: legacy
announcement_textis migrated totextand content is decoded for compatibility. - Version tracking: migration status is recorded in
dbversion(for example, updated to5.0by the installer command).
β οΈ These schema transformations can be destructive for legacy databases. Always run migrations on a backup copy first.
More migration highlights (auth, permissions, UI, and domain behavior) can be documented in this section as the project evolves.
Before installing LibreBooking Laravel, ensure your system meets the following requirements:
- PHP 8.2 or higher
- Composer 2.x
- Database: MySQL 8.0+ / MariaDB 10.3+
- Web Server: Apache / Nginx
- Extensions: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, GD
| Category | Technology |
|---|---|
| Framework | Laravel 12.x |
| Admin Panel | Backpack for Laravel 7.x |
| Theme | theme-tabler |
| Database | MySQL / MariaDB |
| PHP Version | 8.2+ |
| Image Processing | Intervention Image |
| Permissions | Backpack PermissionManager |
| File Manager | Backpack FileManager |
| Translations | Spatie Translation Loader |
This README contains instructions for local (non-Docker) installation.
- π³ For Docker installation, see: README.Docker.md
| Installation Type | Guide | Typical Use |
|---|---|---|
| Local (non-Docker) | This file (README.md) |
Direct PHP/Composer setup on host |
| Docker | README.Docker.md | Isolated environment with containers |
git clone https://github.com/labmecanicatec/appV5.git
cd appV5Copy the example environment file and update your configuration:
cp .env.example .envThen edit .env and set at least:
APP_TIMEZONE=America/Bogota
APP_URL=http://127.0.0.1:8000
DB_CONNECTION=mariadb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=librebooking
DB_USERNAME=root
DB_PASSWORD=passwordcomposer installphp artisan key:generate
php artisan storage:linkphp artisan app:install-dbThis command will create or update the database, run migrations, and seed data.
php artisan serveAccess:
Key configuration options in your .env file:
# Application
APP_NAME="LibreBooking"
APP_ENV=local
APP_DEBUG=true
APP_TIMEZONE=America/Bogota
APP_URL=http://127.0.0.1:8000
# Database
DB_CONNECTION=mariadb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=librebooking_test
DB_USERNAME=root
DB_PASSWORD=password
# Mail Configuration
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=nullCustomize the application's appearance in:
config/backpack/theme-tabler.php
- Lines 43β47: Control the background image/pattern
- Lines 48β52: Control the color scheme
Available options include dark mode, light mode, and various color themes.
The application includes translations for:
- π¬π§ English
- π©πͺ German (Deutsch)
- πͺπΈ Spanish (EspaΓ±ol)
π‘ Note: Translations were generated with AI assistance and should be reviewed for accuracy. You can modify translations in the
lang/directory or through the admin panel.
- Frontend: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
- View Schedules: http://localhost:8000/schedule
After installation, you'll set up your admin credentials during the database installation process. Make sure to:
- Reset the administrator password during installation
- Configure additional user accounts as needed
Run the test suite:
php artisan testOr with PHPUnit directly:
./vendor/bin/phpunitFor code style checking:
./vendor/bin/pint- Ensure your database is properly configured and accessible before running migrations
- Customize timezones and locales in
.envto match your region - The app uses Backpack for Laravel for the admin interface
- All existing user passwords from LibreBooking 4.0 must be reset after migration
- It's strongly recommended to test with a copy of your production database first
Database Connection Error
# Check your .env database credentials
# Ensure MySQL/MariaDB service is running
sudo systemctl status mysql # or mariadbPermission Denied Errors
# Fix storage and cache permissions
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cacheComposer Dependencies Issues
# Clear composer cache and reinstall
composer clear-cache
composer install --no-cacheFrontend Assets Not Loading
# Rebuild assets
php artisan config:clear
php artisan cache:clearWe welcome contributions!
This project is built upon and inspired by:
- LibreBooking - The original open-source scheduling system
- Laravel Framework - The PHP framework for web artisans
- Backpack for Laravel - Admin panel builder
- All contributors who have helped improve this project
- The Laravel and Backpack communities for their excellent tools and documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Always use a backup copy of your database when testing
- Reset all user passwords after migration from LibreBooking 4.0
- Keep your dependencies up to date:
composer update - Never commit your
.envfile to version control - Use strong passwords for production environments
Made with β€οΈ for the community