Raspberry PI OS Lite version can be very versatile to put in place a number of home useful services (see also my Raspberry Pi projects article). Some addicting features can be achieved by searching open source software and testing it with this fantastic device. An interesting example is installing a complete open source hotel reservation and booking system with Raspberry Pi and Qloapps.
QloApps is an open source software with all the features to help Hotel Business management. Qloapps features include:
It is composed of a web front end, which is the page that customers can reach from internet, and a web back-end, which is where hotel owner manages hotels, rooms, prices and many other customizations.
This project is very simple and installing only web services from remote allows to need only a few cheap parts. I’m going to get it with a Raspberry Pi 3 model B, but it should word also with Raspberry PI 3 model A+ or newer boards.
I suggest adding from now to your shopping chart all needed hardware, so that at the end you will be able to evaluate overall costs and decide if continuing with the project or removing them from shopping chart. So, hardware will be only:
You will also need a Desktop PC with an SFTP software (like, for example, the free Filezilla) to transfer installation packages into your RPI.
Check hardware prices with following links:
We’ll start from setting up a classic LAMP server. We’ll then setup database users and install Qloapps.
For this step you can simply follow my Install Raspberry PI OS Lite article.
Make sure that your system is up to date. Connect via ssh terminal and type following commands:
sudo apt update sudo apt upgrade
LAMP (Linux – Apache – Mysql – Php) servers usually comes with MySQL database. In our project we’ll use instead MariaDB because it is lighter and work fine with Raspberry Pi. I’ll go fast in this first part because installin a LAMP server is well documented over internet…
sudo apt-get install apache2 -y
You should now be able to check that Apache installation has gone correctly by browsing http://<<YouRpiIPAddress>>:
sudo apt-get install php -y
sudo apt-get install mariadb-server php-mysql -y
sudo apt-get install phpmyadmin
In phpmyadmin setup screens I suggest the following:
We’ll connect to MariaDB with root user (defult password is empty) to grat permissions (remember to use semicolumns at the end of each command row as showed below):
sudo mysql -uroot -p grant all privileges on *.* to 'phpmyadmin'@'localhost'; flush privileges; quit;
Finally restart Apache service:
sudo systemctl restart apache2.service
and check that phpmyadmin is working by browsing “http://<<YouRpiIPAddress>>/phpmyadmin/”
Default phpmyadmin login credentials are:
We need to prepare our system to Qloapp installation check. So we have to install php soap connector:
sudo apt-get install php-soap
Another setting to pass compliance check is editing php max upload file size to 16 MB:
sudo nano /etc/php/7.3/apache2/php.ini
Look for the row with upload_max_filesize parameter and set it as the following:
upload_max_filesize = 16M
Qloapps suggests also the following change:
max_execution_time = 500
Save and exit. Restart again Apache:
sudo systemctl restart apache2.service
We’ll follow official Qloapps installation guide, with some minor changes to have a dedicated database application user.
Go back to phpmyadmin web page (browse “http://<<YourRpiIPAddress>>/phpmyadmin/”) and login:
user: phpmyadmin
password: the one set up in phpmyadmin installation step
Click on Database Tab:
Create a database and take a note of the database name as you will require the same name in the further installation process.
It’s time to create a database user for Qloapps. In this example I’ll use the following credentials. Use the one at you choice, mostly for password:
user: qloapps_db_user
password: qloapps_db_password
So, terminal commands will be (root password is still empty, if not changed by you before):
sudo mysql -uroot -p CREATE USER 'qloapps_db_user'@'localhost' IDENTIFIED BY 'qloapps_db_password'; GRANT ALL PRIVILEGES ON qloapps_.* TO 'qloapps_db_user'@'localhost'; flush privileges; quit
Download Qloapps installation zip file from Qloapps download page in your local PC. At the time of this article, this file is named “HotelCommerce-1.4.0.zip”.
With you favoutire SFTP software transfer via SFTP the entire zip file to a new folder in path “/home/pi/download” in your Raspberry PI. Common (default) SFP connection parameters are:
Back to terminal:
cd /home/pi/download/ #Enter directory where Qloapps installation files have been transferred unzip HotelCommerce-1.4.0.zip #Extracts all files from zip cd /var/www/html/ #Enter Apache web directory sudo rm index.html #Removes Apache default page - we'll use Qloapps one sudo cp -R /home/pi/download/HotelCommerce-1.4.0/hotelcommerce/* ./ #Copy installation files to web directory sudo chown -R www-data:www-data ./
Browse http://<<YourRpiIPAddress>> to start installation:
Select your favourite language and press Next.
Read License Agreement. If you agree, check apposite flag and press Next.
At this step, you will need to enter your Store Details and the credentials by which you will access your store. So be patient while entering the details. At the end, press ok.
Edit database connection parameters according to what defined in previous paragraphs. With parameters used in this guide, I will edit:
Test database connection and it should be ok. Click Next.
Installation seems to be finished correctly, but we must remove install folder before entering Qloapps web pages. From terminal, type:
sudo rm -R install/
With the command “ls” from terminal, locate a folder whose name starts with “admin”. In my case the output is the following:
… but admin folder name can vary from installation to installation.
Now your booking web server is ready and pages will be:
First access to Back-end goes in demo mode. This can be disabled with the switch button on right side of page named “Demo mode”.
To customize, please use Qloapps user guide.
Enjoy your hotel reservation and booking system with Raspberry PI and Qloapps!
In this tutorial, we will use two Arduino Uno to demonstrate the Serial Peripheral Interface…
In this tutorial, we will be making an automatic irrigation system (AIS) with Arduino and…
This tutorial will show you how to use Python Virtual Environment with Raspberry PI computer…
This tutorial will show you how to get betting odds with Raspberry PI by using…
This tutorial will show you how to perform the backup of Raspberry PI (computer board)…
This tutorial will show you how to install Honeygain on a Raspberry PI computer board…