TourRova

Self-Hosted Edition Β· v1.0 Β· 2026
Complete Installation & Setup Guide
Support: npdinesh@yahoo.com Β· DKwebArt
Contents
Requirementspg 2
Upload Files to Serverpg 2
Create Databasepg 3
Configure db.phppg 3
Set Up JWT Secretpg 4
Email Configurationpg 4
First Login & Admin Setuppg 5
File Structure Referencepg 5
Folder Permissionspg 6
Going Live Checklistpg 6
Customizing Your Brandingpg 7
Support & Updatespg 7

1. Requirements

ComponentMinimumRecommended
PHP7.48.1 or higher
MySQL5.78.0
HostingShared (cPanel/Hostinger)VPS or Cloud
Disk Space50 MB1 GB (for uploads)
PHP ExtensionsPDO, PDO_MySQL, mbstring, json, openssl
βœ… Tested and confirmed working on Hostinger Web Hosting (hPanel), cPanel shared hosting, and DigitalOcean droplets.

2. Upload Files to Server

1Extract the ZIP
Extract TourRova-SelfHosted.zip on your computer. You will see a folder called tourrova/.
2Upload all files
Using Hostinger File Manager or FTP (FileZilla), upload ALL contents of the tourrova/ folder to your public_html/ directory.

The result should look like:
public_html/
β”œβ”€β”€ .htaccess
β”œβ”€β”€ index.php
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ css/app.css
β”‚   └── js/app.js
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ config/db.php        ← you will edit this
β”‚   └── auth/auth.php
β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ sidebar.php
β”‚   └── topbar.php
└── public/
    β”œβ”€β”€ login.php
    β”œβ”€β”€ dashboard.php
    β”œβ”€β”€ inquiries/
    β”œβ”€β”€ bookings/
    β”œβ”€β”€ customers/
    └── ... (all modules)
⚠️ If you are installing in a subdirectory (e.g. public_html/tourrova/), you will need to update the base URL in .htaccess. See section 5.

3. Create Database

1Create a MySQL database
In Hostinger hPanel β†’ Databases β†’ MySQL Databases:
2Import the schema
In phpMyAdmin β†’ Select your database β†’ Import tab:
  1. Click "Choose File"
  2. Select database/01_schema.sql from your extracted folder
  3. Click "Go" to import (creates all 20 tables)
  4. Then import database/02_sample_data.sql (optional β€” test data)
βœ… After import you should see 20+ tables including: organizations, users, bookings, inquiries, customers, payments, quotes, vouchers, itineraries, etc.

4. Configure db.php

Open src/config/db.php in a text editor and update these values:

<?php
// =====================================================
// TourRova Database Configuration
// =====================================================

define('DB_HOST', 'localhost');          // usually localhost
define('DB_NAME', 'yourdomain_tourrova'); // your database name
define('DB_USER', 'yourdomain_user');    // your database username
define('DB_PASS', 'YourStrongPassword'); // your database password
define('DB_CHARSET', 'utf8mb4');

// JWT Authentication
define('JWT_SECRET', 'CHANGE_THIS_TO_RANDOM_64_CHAR_STRING');
define('JWT_EXPIRY', 86400); // 24 hours in seconds

// Application
define('APP_URL', 'https://yourdomain.com'); // your domain, no trailing slash
define('APP_NAME', 'TourRova');

function db(){
    static $pdo;
    if(!$pdo){
        $dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET;
        $pdo = new PDO($dsn, DB_USER, DB_PASS, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ]);
    }
    return $pdo;
}
⚠️ Generate a strong JWT_SECRET using: openssl rand -hex 32 or any 64-character random string. Never share this!

5. Set Your Admin Account

After uploading files, visit your site to create the first admin account:

https://yourdomain.com/public/createadmin.php

This page will:

⚠️ Important: Delete or rename createadmin.php immediately after creating your account! This is a security requirement.

6. Email Configuration (Optional)

For booking confirmation emails, add SMTP settings to src/config/db.php:

// Email (add at bottom of db.php)
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);
define('SMTP_USER', 'your@gmail.com');
define('SMTP_PASS', 'your_app_password');
define('MAIL_FROM', 'your@agency.com');
define('MAIL_FROM_NAME', 'Your Agency Name');
πŸ’‘ For Gmail: use an App Password (Google Account β†’ Security β†’ 2-Step Verification β†’ App Passwords)

7. File Structure Reference

Folder/FilePurpose
src/config/db.phpDatabase connection + config (EDIT THIS)
src/auth/auth.phpJWT auth functions
src/plan_limits.phpSaaS plan enforcement (optional)
assets/css/app.cssGlobal stylesheet
templates/sidebar.phpNavigation sidebar
templates/topbar.phpTop navigation bar
public/login.phpLogin page
public/dashboard.phpMain dashboard
public/inquiries/Inquiry management module
public/bookings/Booking management module
public/customers/Customer management module
public/quotes/Quote/proposal generator
public/itinerary/Itinerary builder module
public/vouchers/Voucher generator module
public/payments/Payment tracking module
public/reports/Revenue reports + charts
public/settings/Agency settings + password change
public/admin/Super admin panel (org 1 only)
database/01_schema.sqlDatabase tables (import this first)
database/02_sample_data.sqlOptional test data

8. Going Live Checklist

TaskStatus
Files uploaded to public_html☐
Database created and schema imported☐
db.php configured with DB credentials☐
JWT_SECRET set to random string☐
APP_URL set to your domain☐
Admin account created via createadmin.php☐
createadmin.php deleted from server☐
SSL certificate active (https://)☐
Login tested successfully☐
First inquiry created successfully☐

9. Customizing Your Branding

What to changeWhere to find it
Agency name (sidebar + all pages)Settings page inside the app β†’ Agency Profile
"TourRova" text in sidebar logotemplates/sidebar.php line ~15
Blue color (#2563eb)assets/css/app.css + inline styles
Logo icon (fa-route)templates/sidebar.php β€” change Font Awesome icon
Quote/voucher footer textpublic/quotes/view.php and public/vouchers/print.php

10. Support & Updates

Your license includes:

πŸ“§ When emailing support, always include: your domain URL, error message (if any), and which step of setup you're on.
TourRova Self-Hosted Edition Β· Built by DKwebArt Β· npdinesh@yahoo.com
Β© 2026 All rights reserved Β· License: Single agency use / Resell permitted