Overview
Discover what makes QloApps powerful
QloApps is a full‑stack, open‑source hotel reservation platform that bundles a **PMS**, **booking engine**, and **channel manager** into a single PHP application. From a developer standpoint, the system is engineered to run on any LAMP/LEMP stack and exposes a rich set of APIs that allow external services to query availability, create reservations, or sync rates with third‑party OTAs. The core logic is written in PHP 8.1+, leveraging Composer for dependency management and PSR‑4 autoloading, while the database layer is built on MySQL 5.7+ with a normalized schema that supports multi‑property and multi‑currency operations.
Backend
Database
Frontend
API Layer
Overview
QloApps is a full‑stack, open‑source hotel reservation platform that bundles a PMS, booking engine, and channel manager into a single PHP application. From a developer standpoint, the system is engineered to run on any LAMP/LEMP stack and exposes a rich set of APIs that allow external services to query availability, create reservations, or sync rates with third‑party OTAs. The core logic is written in PHP 8.1+, leveraging Composer for dependency management and PSR‑4 autoloading, while the database layer is built on MySQL 5.7+ with a normalized schema that supports multi‑property and multi‑currency operations.
Architecture
- Backend: PHP 8.x with Symfony components (routing, event dispatcher) wrapped in a custom MVC framework. The application uses PDO for database access and includes an ORM‑like active record layer that abstracts table interactions.
- Database: MySQL 5.7+ (or MariaDB) with support for InnoDB storage, foreign keys, and full‑text indexes. The schema is split into modules (core, booking, channel) to ease maintenance.
- Frontend: Twig templating engine combined with Bootstrap 5 for responsive UI. JavaScript is modularized via Webpack, enabling developers to inject custom components or replace the default UI with a SPA framework if desired.
- API Layer: RESTful endpoints are exposed under
/api/and are token‑based (JWT). Endpoints cover CRUD operations for rooms, bookings, customers, and rate plans. Webhooks can be configured to notify external services on booking events. - Plugin System: Extensions are installed as Composer packages placed under
modules/. Each module follows a standard hook interface (install,uninstall,upgrade) and can register routes, database migrations, or template overrides. The marketplace link in the documentation points to a curated list of community‑developed addons (payment gateways, reporting tools, etc.).
Core Capabilities
- Dynamic Availability Engine: Calculates real‑time room availability by merging internal bookings with external OTA feeds. The algorithm supports complex business rules (minimum stay, blackout dates, rate overrides).
- Multi‑Property & Multi‑Language Support: The configuration tables store per‑property settings, allowing a single instance to host dozens of hotels with localized content.
- Payment Integration: Built‑in adapters for Stripe, PayPal, and offline payments. The payment module is pluggable; developers can add new gateways by implementing the
PaymentInterface. - Channel Manager: Syncs rates and inventory with major OTAs (Booking.com, Expedia) via their XML/JSON APIs. The sync process is scheduled through a cron job and can be triggered manually via the admin UI.
- Reporting & Analytics: REST endpoints expose booking metrics, occupancy rates, and revenue reports. The front‑end uses Chart.js to render dashboards.
Deployment & Infrastructure
QloApps is designed for self‑hosting on any web server (Apache, Nginx, IIS). It requires PHP 8.1+ and MySQL 5.7+. The application can be containerized using Docker; the official Dockerfile pulls from php:8.2-fpm and sets up Composer dependencies, making it straightforward to run in Kubernetes or Docker‑Compose setups. Horizontal scaling is achievable by running multiple PHP-FPM workers behind a load balancer, with the database replicated via MySQL Group Replication or MariaDB Galera for high availability.
Integration & Extensibility
- REST API: Fully documented with Swagger/OpenAPI, enabling third‑party services (CRM, ERP) to consume booking data.
- Webhooks: Configurable event hooks (
booking.created,payment.completed) that post JSON payloads to external URLs. - SDK: A lightweight PHP SDK is available on Packagist, providing typed client wrappers for the API.
- Custom Modules: Developers can create modules that hook into lifecycle events, add new database tables, or override templates. The module architecture follows the observer pattern, making it easy to extend without modifying core code.
Developer Experience
The project ships with comprehensive documentation on the official site, including architecture diagrams, API reference, and a developer guide for creating modules. The community forum is active, and the codebase follows PSR‑12 coding standards, which eases linting and static analysis. Licensing under OSL v3 ensures that any derivative works remain open source, encouraging collaboration.
Use Cases
- Independent Hotels: Deploy a single instance to manage reservations, rates, and channel sync for multiple boutique properties.
- Hotel Chains: Use the multi‑property feature to centralize booking across locations while exposing separate front‑ends per hotel.
- Agencies & Marketplace Builders: Leverage the API and channel manager to build a marketplace where hotel owners can register, upload inventory, and manage bookings through QloApps.
- Custom Mobile Apps: Integrate the REST API into native iOS/Android apps to provide a seamless booking experience for guests.
Advantages
- Performance: PHP 8’s JIT and the lean architecture yield low latency for booking queries, even under high concurrency.
- Flexibility: The plugin system and API surface allow developers to tailor the platform without touching core files.
- Cost‑Effective: Completely free under OSL v3; no licensing fees for internal use or redistribution.
- Community & Ecosystem: Active contributors,
Open SourceReady to get started?
Join the community and start self-hosting QloApps 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
FeedCord
Discord‑centric RSS & YouTube feed reader
Keila
Open‑source newsletter tool for easy, privacy‑focused email campaigns
E-MailRelay
Lightweight SMTP store‑and‑forward server with POP access and spam filtering
OTS
Secure one‑time secret sharing in the browser
Hasura GraphQL Engine
Instant, secure APIs from any database
Fork Recipes
Elegant recipe manager for the modern kitchen
