Open-source project
Qloapps/QloApps avatar
Qloapps/QloApps

QloApps: a self-hosted hotel booking engine and PMS in PHP

QloApps is a Free and Open-source hotel management and reservation system to take a hotel business online. QloApps offers a Property Management System (PMS), a Booking Engine, and an attractive Hotel Website. Elevate hotel operations with QloApps to streamline processes and provide an enhanced experience for both hoteliers and guests.

14,404 stars816 forksPHPOSL-3.0

At a glance

What is it?
QloApps bundles a property management system, a booking engine and a hotel website into one PHP application. It is the right shape for a hotel that wants to own its booking flow, and the wrong shape for anyone unwilling to run a PHP stack.
Who is it for?
Adopt QloApps if you run a hotel, hostel or small chain that wants the booking engine, PMS and website under one login, and you already have PHP hosting or someone who can run the Docker image. Do not adopt it if you need a channel manager out of the box, if you cannot get SSH or FTP access to the server, or if you expect the project to answer a security report in public.
Can I use it commercially?
Yes, with conditions. OSL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly PHP, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What QloApps replaces on a hotel's stack

Most small hotels run three separate things: a website, a booking form that emails a confirmation, and a spreadsheet or desktop PMS at the front desk. QloApps collapses those into one PHP application. The README describes it as a hotel reservation system and booking engine, and the repository topics name the parts: booking engine, booking website, central reservation system, PMS, staff management. The intended user is narrow and specific. It is a hotelier who wants to take bookings directly rather than through an OTA, and who is willing to run the software themselves. The README states the goal plainly: launch your hotel website, showcase your property, and take and manage bookings. Small independent hotels and chains are both named as targets, though the second is a stretch for a single installation without a channel manager in the core.

How the application is put together

This is a PHP application with a conventional layout, not a service-oriented system. The top level of the repository holds Core/, classes/, controllers/, modules/, themes/, override/, admin-dev/, install-dev/ and webservice/. That tells you the shape of the thing: shared classes and controllers under Core/ and classes/, a module directory for extensions, themes for the front end, and an override directory for patching core behaviour without forking it. The webservice/ directory is the API surface. The admin-dev/ and install-dev/ directories are the development-side counterparts of the admin and installer that ship to users. Data lives in MySQL, and the installer checks the server against the required PHP version, MySQL version and extension list before it will proceed. The README states that if the server is not compatible, installation will not move ahead. That is a hard gate, not a warning, and it is worth knowing before you provision anything.

Installing QloApps and taking a first booking

The README gives two paths. The first is a manual install: download the package, then follow the installation guide published at qloapps.com/install-qloapps/. The second is the Docker image maintained by Webkul. The README gives the pull command:

bash
docker pull webkul/qloapps_docker

That pulls the image; the README points to the image page on Docker Hub for the rest of the setup rather than repeating the run command, so treat the Hub page as the source of truth for ports and volumes. If you are installing manually, the server has to satisfy the stated ranges before the installer will continue. The README lists the required PHP extensions as PDO_MySQL, cURL, OpenSSL, SOAP, GD, SimpleXML, DOM, Zip and Phar, with PHP 8.1+ to 8.4 and MySQL 5.7+ to 8.4. On a hosted server it also asks for SSH or FTP access and a database created in advance. The PHP settings it names are memory_limit "128M", upload_max_filesize "16M", max_execution_time "500", and allow_url_fopen "on" for the hosted case. Once installed, the fastest way to see what you are getting is the demo: demo.qloapps.com, with the credentials [email protected] and demodemo listed in the README. Create a room type, set a rate, and walk a booking through the front end before you decide anything about your own property.

Where QloApps stops short

The core does not include a channel manager. That is the single biggest gap for a hotel that also sells on Booking.com or Expedia, and the repository topics and README do not claim otherwise. The related searches show people looking for one, which is a sign of demand rather than a feature. Add-ons exist at qloapps.com/addons/, but the README does not describe what any individual one does, so you cannot tell from the repository alone whether the channel integration you need is available or what it costs. Two more constraints are worth stating. First, the README tells you not to disclose security vulnerabilities publicly and to email [email protected] instead. That is a normal coordinated-disclosure request, but it means there is no public advisory feed to watch. Second, the licence is not uniform across the codebase, and the README says so directly: core is OSL-3.0, modules authored by Webkul carry their own licence in LICENSE.md inside their root directories, and other modules are AFL-3.0. If you are building a product on top of QloApps, read those files before you assume the core licence covers everything you ship.

QloApps against WordPress plus a booking plugin

The obvious alternative for a small property is WordPress with a booking plugin. The difference is in what the software knows about. A WordPress booking plugin sits on top of a general CMS and models rooms, rates and availability as plugin data; QloApps models them as the primary subject of the application, with a PMS, staff management and a front desk as first-class parts of the system. That matters once you have more than a handful of rooms, because the booking engine and the front desk need to agree on inventory in real time. The trade-off runs the other way too. WordPress gives you a plugin ecosystem for everything that is not booking, from SEO to email marketing, and a much larger pool of people who can edit a theme. QloApps gives you themes/ and modules/ but a far smaller community around them. If your website is mostly a marketing site with a booking form attached, WordPress is the easier fit. If the booking engine and the front desk are the business, QloApps is built for that and WordPress is not.

Release cadence, maintenance and upgrade cost

The last push to the develop branch was on 2026-09-18, three days before this was written, and the repository is not archived, so there is current activity. Releases are slower than commits. The most recent is QloApps 1.7.0 on 2025-07-04, preceded by 1.6.1 on 2024-10-10 and 1.6.0 on 2023-04-17. That is roughly one release a year, which means a fix you need may sit on develop for a while before it reaches a tagged version. Plan upgrades around the release notes rather than around the commit log. The upgrade cost itself is the ordinary cost of a self-hosted PHP application: you own the server, the PHP version, the database and the backups. Nothing in the README describes a rollback procedure, so take a database dump before you upgrade. On licensing, the README points to the full OSL-3.0 text at opensource.org/licenses/OSL-3.0 and AFL-3.0 at opensource.org/licenses/AFL-3.0. Whether either fits your distribution plans is a question for a lawyer, not for this article.

Editorial conclusion

Adopt QloApps if you run a hotel, hostel or small chain that wants the booking engine, PMS and website under one login, and you already have PHP hosting or someone who can run the Docker image. Do not adopt it if you need a channel manager out of the box, if you cannot get SSH or FTP access to the server, or if you expect the project to answer a security report in public. Before installing, confirm the server meets the stated PHP 8.1 to 8.4 and MySQL 5.7 to 8.4 ranges, that PDO_MySQL, cURL, OpenSSL, SOAP, GD, SimpleXML, DOM, Zip and Phar are all enabled, and that memory_limit, upload_max_filesize and max_execution_time are set as the README specifies. Then read the LICENSE.md inside any module directory you plan to ship, because the core licence does not cover the modules.

Frequently asked questions

Is QloApps free to use?

Yes. The README describes QloApps as a free and open source platform, and the core is licensed under OSL-3.0. Modules are licensed separately, so the core being free does not automatically mean every add-on is.

How do I install QloApps?

There are two documented routes: download the package and follow the installation guide at qloapps.com/install-qloapps/, or pull the Docker image with docker pull webkul/qloapps_docker. The manual route requires PHP 8.1 to 8.4, MySQL 5.7 to 8.4, and a list of PHP extensions that the installer checks before it continues.

How do I try QloApps before installing it?

The README lists a demo at demo.qloapps.com with the username [email protected] and password demodemo. That lets you look at the booking engine and admin without provisioning a server.

What are the alternatives to QloApps?

The most common route for a small property is WordPress with a booking plugin, which puts booking on top of a general CMS instead of treating rooms, rates and availability as the core data model. QloApps also has an add-ons directory at qloapps.com/addons/, though the README does not describe individual add-ons.

Official sources

  1. License: OSL-3.0
  2. Project website
  3. Qloapps/QloApps on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/qloapps-qloapps.svg)](https://hysenlabs.com/projects/qloapps-qloapps)