Changelog Support Author Profile

Shared Host Installation

If you are deploying SpotVibe on a typical shared hosting environment (e.g. cPanel) where you do not have terminal/SSH command line access, follow this detailed companion guide to configure your database, extract files, run the setup wizard, and enable background automation.

1. Creating the Database in cPanel

First, you need to create a fresh MySQL database where the system will store bookings, venues, and user accounts. You can do this visually using the cPanel MySQL Wizard:

2. Uploading Files via cPanel File Manager (Primary Method)

On shared hosting, you can upload all files directly to your main web folder and use the included .htaccess file to securely route your visitors, avoiding the need to change root folders or use SSH.

After extraction, your public_html/ (or custom subdomain folder) directory structure must look exactly like this:

/public_html
  ├── app/            (System core folder)
  ├── bootstrap/      (Cache configurations)
  ├── config/         (System setup folder)
  ├── database/       (Database schema records)
  ├── public/         (Assets and index entry)
  ├── resources/      (Design templates and layouts)
  ├── routes/         (Web path records)
  ├── vendor/         (System package library)
  ├── .htaccess       (Pre-configured redirection helper)
  └── artisan         (Web runner file)
⚠️ IMPORTANT: The .htaccess file must be present in the root folder of your domain or subdomain. This file is pre-configured to redirect visitors to the secure public/ folder, protect your system configuration files (such as .env and artisan), and prevent unauthorized access.

3. Configuring a Subdomain (Alternative Option - Subdomain-to-Folder Mapping)

If you prefer to run SpotVibe on a subdomain (for example, booking.yourdomain.com) instead of your primary domain, you must set it up in your hosting control panel. It is absolutely critical that the subdomain's directory is correctly configured.

🚨 CRITICAL: SUBDOMAINS MUST POINT TO THE EXACT CODE DIRECTORY
When creating a subdomain, your hosting provider asks for a Document Root (the directory where the web server looks for files).
  • You must extract the SpotVibe files inside the exact folder mapped to that subdomain (e.g., public_html/booking/).
  • If you map your subdomain to public_html/booking but extract your code in the main public_html/, the website will fail to load, resulting in 404 Not Found, 403 Forbidden, or default hosting placeholder pages.

A. How to configure on Hostinger (hPanel):

  1. Log in to your Hostinger Control Panel and navigate to the Subdomains section.
  2. Enter your subdomain name (e.g., booking).
  3. Important: Check the box "Use a custom folder for subdomain". This separates your subdomain files from your main website files.
  4. Input your desired directory path (e.g., public_html/booking).
  5. Click Create.
  6. Note down this folder path. When uploading files (in Step 2), you must navigate to this exact folder (e.g. public_html/booking/) instead of the main public_html/.

B. How to configure on cPanel:

  1. Log in to your cPanel dashboard, search for and open the Domains tool.
  2. Click the Create A New Domain button.
  3. Enter your subdomain in the Domain box (e.g., booking.yourdomain.com).
  4. Important: Ensure the checkbox "Share document root" is unchecked. This will reveal the Document Root directory input.
  5. Specify the custom directory path (e.g., public_html/booking).
  6. Click Submit. When uploading files (in Step 2), you must upload and extract them inside this exact folder instead of the main public_html/.

4. Running the Visual Installer Wizard

Once your database is created and files are extracted in the correct directory (either public_html/ or your subdomain folder), you are ready to trigger the installer wizard:

5. Setting up Cron Jobs (Background Automation)

SpotVibe requires a background timer (Cron Job) to run every minute. This timer cancellation process automatically releases slots if a customer exits during checkout, and cancels expired bookings. You can configure this easily in your hosting provider's panel (like cPanel, Hostinger hPanel, etc.):

Cron Job Command Configuration

⚠️ Hostinger & cPanel Troubleshooting:
  • Common Error: No such file or directory / syntax error near unexpected token: This occurs if you input only the file path (e.g. public_html/artisan) directly into the command box. The system will try to execute it as a shell script instead of a PHP file. You must always prepend the php or /usr/bin/php prefix in your command so the system knows to run it with the PHP interpreter.
  • Finding your absolute home directory: Cron commands run from the root of the hosting environment (usually /home/uXXXXXXXXX/ on Hostinger). Thus, paths must be absolute: /home/uXXXXXXXXX/domains/yourdomain.com/public_html/artisan. You can find your "Home directory" in your Hosting Dashboard details.
  • Specifying PHP CLI version: If your host defaults to an older PHP version on CLI, you may need to use the full path to PHP 8.4+:
    • Hostinger / Generic: /usr/bin/php
    • cPanel: /usr/bin/ea-php84 (or the path corresponding to PHP 8.4)