🏠 Installing on Shared Hosting
Many of our users run Monitron SaaS on shared hosting — and that's totally fine! Shared hosting providers like cPanel, Plesk, DirectAdmin, and CyberPanel are fully supported.
This guide walks you through every single step, from uploading files to getting your first monitor running. No SSH or terminal access needed! Monitron SaaS is a true plug-and-play solution. 🎉
Zero artisan commands required! The Installation Wizard handles everything automatically — database migrations, encryption key generation, storage linking, and more. You just fill in the forms, and Monitron does the rest.
🤔 Can I Really Run Monitron on Shared Hosting?
Yes! Monitron SaaS is designed to work on shared hosting. Here's what you need:
| Requirement | Minimum | Notes |
|---|---|---|
| PHP Version | 8.4+ | Most modern hosts offer PHP 8.4 |
| MySQL / MariaDB | 5.7+ / 10.3+ | Almost always included |
| Storage Space | 100 MB+ | For the application files |
| Cron Jobs | At least 1 | Required for monitoring to work |
Shared hosting limitations to be aware of:
- Some hosts disable PHP functions like
exec(),proc_open(), orshell_exec()— Monitron works without them, but the Ping (ICMP) monitor type may not be available. - Some hosts limit cron jobs to every 5 or 15 minutes — this means your minimum check interval will be 5 or 15 minutes instead of 1 minute.
- Some hosts limit outgoing connections — this could affect monitors that check external ports (TCP, SMTP, etc.).
- Queue workers run via cron instead of Supervisor — slightly less real-time, but perfectly functional.
If your host supports Node.js or SSH access, you may have more flexibility. But this guide assumes you have only a basic cPanel-style control panel — no terminal access needed.
📋 Step-by-Step Overview
Here's what we'll do — all from your hosting control panel, no command line needed:
- ✅ Check your hosting meets the requirements
- 📦 Upload the files
- 📂 Set the document root (public folder alignment)
- 🗄️ Create a database
- 🧙 Run the Installation Wizard (handles everything else automatically!)
- ⏰ Set up the cron job
- ✅ Verify everything works
That's it — 7 simple steps, all done through your browser! 🚀
Let's go! 👇
✅ Step 1: Check Your Hosting Requirements
Before you begin, log into your hosting control panel and verify:
Check PHP Version
In cPanel:
- Go to "Select PHP Version" or "MultiPHP Manager"
- Make sure your domain is set to PHP 8.4 or higher
- If not, change it — most hosts let you switch PHP versions instantly
In Plesk:
- Go to Websites & Domains → your domain → PHP Settings
- Select PHP 8.4+ from the dropdown
- Click Apply
In DirectAdmin:
- Go to Domain Setup → your domain
- Click PHP Version
- Select 8.4 or higher
Check Required PHP Extensions
Most shared hosts include all required extensions. But double-check these are enabled:
BCMathCtypecURLDOMFileinfoJSONMbstringOpenSSLPDO(withpdo_mysql)TokenizerXMLZip
In cPanel → Select PHP Version → Extensions tab — check all the boxes above.
Don't worry if you miss one! The Installation Wizard in Step 5 will check all requirements and tell you exactly what's missing.
📦 Step 2: Upload the Files
You have two options for uploading:
Option A: Upload via File Manager (Easiest)
- Log into your hosting control panel (cPanel, Plesk, etc.)
- Open the File Manager
- Navigate to your home directory (usually
/home/yourusername/) - Upload the
monitron-saas.zipfile here (NOT insidepublic_html!) - Extract the ZIP file — this creates a
monitron/folder - You should now have
/home/yourusername/monitron/with all the app files
Option B: Upload via FTP
- Connect to your server using an FTP client (FileZilla, WinSCP, Cyberduck)
- Use the FTP credentials from your hosting panel
- Navigate to
/home/yourusername/ - Upload the extracted
monitron/folder here
🚨 Do NOT upload everything into public_html! The application files must be placed outside of the public directory for security. Only the contents of the public/ folder should be web-accessible.
Set Folder Permissions
After uploading, make sure these folders are writable. In your File Manager:
- Navigate to
/home/yourusername/monitron/storage/ - Right-click → Change Permissions → set to
755(or775if 755 doesn't work) - Check the box "Apply to all subdirectories and files" (recursive)
- Do the same for
/home/yourusername/monitron/bootstrap/cache/
📂 Step 3: Public Folder Alignment (CRITICAL!)
This is the most important step on shared hosting. Your web server's document root (usually public_html) must serve the contents of Monitron's public/ folder.
There are three ways to do this. Pick the one that works for your hosting:
Method A: Change Document Root (Recommended) ⭐
This is the cleanest approach. Point your domain's document root directly to the Monitron public/ folder.
In cPanel:
- Go to "Domains" or "Subdomains"
- Click "Create a New Domain" (or modify existing)
- Set the Document Root to:
/home/yourusername/monitron/public - Save
In Plesk:
- Go to Websites & Domains → Hosting & DNS → Hosting Settings
- Change Document Root to:
/home/yourusername/monitron/public - Click OK
In DirectAdmin:
- Go to Domain Setup
- Edit your domain
- Set the Document Root (public_html) path to:
/home/yourusername/monitron/public
This method is the safest because the application code lives completely outside the web root. No .env file or source code is ever accessible from the web.
Method B: Symlink (If You Can't Change Document Root)
If your host doesn't let you change the document root, you can create a symbolic link from public_html to Monitron's public/ folder.
Using cPanel File Manager → Terminal (if available):
# First, back up and remove the existing public_html
cd /home/yourusername
mv public_html public_html_backup
# Create a symlink
ln -s /home/yourusername/monitron/public public_html
If you don't have terminal access, some File Manager tools allow creating symlinks. Or ask your host's support to create it for you — it takes them 30 seconds!
Some shared hosts disable symlinks for security reasons. If this method doesn't work, try Method C.
Method C: Copy Public Files + Modify index.php
If you can't change the document root OR create symlinks, you can copy the public files and modify the entry point.
-
Copy everything from
monitron/public/intopublic_html/:monitron/public/* → public_html/This includes
index.php,.htaccess,favicon.ico,robots.txt,build/folder, etc. -
Edit
public_html/index.phpusing the File Manager's code editor — you need to update two lines:Find this line:
require __DIR__.'/../vendor/autoload.php';Change to:
require '/home/yourusername/monitron/vendor/autoload.php';Find this line:
$app = require_once __DIR__.'/../bootstrap/app.php';Change to:
$app = require_once '/home/yourusername/monitron/bootstrap/app.php'; -
Edit
monitron/bootstrap/app.php— add the public path override. Add this line after the$appis created:$app->usePublicPath('/home/yourusername/public_html');This tells Laravel where the public folder actually lives.
Replace /home/yourusername/ with your actual home directory path. You can find this in cPanel under "Server Information" or by looking at the File Manager's path bar.
When upgrading Monitron, remember to re-copy the public files and re-apply the index.php changes if using Method C. Methods A and B don't have this issue.
🗄️ Step 4: Create a Database
In cPanel:
- Go to "MySQL® Databases"
- Create a new database — e.g.,
yourusername_monitron - Create a new database user — e.g.,
yourusername_monuser - Set a strong password (save it, you'll need it!)
- Add the user to the database with ALL PRIVILEGES
In Plesk:
- Go to Databases → Add Database
- Database name:
monitron - Create a database user with a strong password
- Click OK
In DirectAdmin:
- Go to MySQL Management
- Create a new database and user
- Grant all privileges
Write down these three values — you'll need them in the next step:
- Database name (e.g.,
yourusername_monitron) - Database username (e.g.,
yourusername_monuser) - Database password