Cpanel/Plesk installation
While the software could theorectically run on shared hosting , we don't advice it for production, since a few things will not work out of the box
Last updated
While the software could theorectically run on shared hosting , we don't advice it for production, since a few things will not work out of the box
Last updated
The software require the laravel artisan queue worker to be monitored and running. It can be challenging to set this up on shared hosting since you need sudo privileges to setup supervisord. If you have sudo privileges , you add the command , (see the end of the page for more). to your supervisord conf.
Like the queue:worker above laravel reverb needs to be monitored and run. Fortunately you can replace reverb for pusher.com since its a drop in subsitute.
Pre Built CSS Files: /../public/assets/css
Source code CSS Files: /../resources/css
Source code Js Files/../resources/js
Pre Built JavaScript Files: /../public/assets/js
Pre Built Fonts, images, components: /../public/assets/
All Dependencies and assets have been installed built and exported, unless you need to make changes to the source code, you don’t have to install or update anything.
Create a fresh database, choose utf8mb4_general_ci
character encoding and add a user to the database, then grant this user all permissions to that database. Note the database name, username, and password. It will be needed during installation
Extract the file you downloaded. In the extracted directory find betriver-server.zip, upload this to the root folder of your domain. Extract the contents of betriver-server.zip here.
Go back to cPanel main page
Look for "Domain" or "Domains" section
Click on "Domains" or "Domain Manager"
Find your domain and click "Manage" or the gear/settings icon
Look for "Document Root" or "Directory"
Add /public
to the end of your current path
Example: If current path is /home/username/public_html
, change it to /home/username/public_html/public
Save changes
Alternative Method (if above option isn't available):
Contact your hosting provider
Ask them to change the document root to point to the /public
folder inside the uploaded files.
Important Notes:
This change may take a few minutes to take effect
Make sure all your Betriver files are properly uploaded before making this change
If your site shows errors, double-check the path is correct
Visit your site in the browser. The installer should load.
Follow the instructions on the screen.
Here are some common settings for MySQL.
Start and wait for migrations. (there are no SQL files)
First, determine the full path to your Laravel project. Typically, it will be something like:
You can verify this by connecting via SSH or using cPanel's File Manager.
Log into your cPanel account
Scroll down to the "Advanced" section
Click on "Cron Jobs" or "Cronjobs"
In the "Add New Cron Job" section:
Common Settings
Set the frequency to run every minute:
Select * for minute
Select * for hour
Select * for day
Select * for month
Select * for weekday
Command to Add
Use one of these commands based on your setup:
Option 1: Using PHP from system path:
Option 2: Using specific PHP version (recommended):
Option 3: Using cd
command (if path issues occur):
Regularly check cron job status in cPanel
Monitor Laravel logs for scheduled task execution
Update command paths if you move your application
Running Laravel's queue worker on shared hosting presents unique challenges since you typically don't have access to supervisor or system-level services. This guide presents several approaches to run and monitor a queue worker within these limitations.
Shared hosting limitations:
No access to Supervisor
Limited background process control
Resource restrictions
Process lifetime limitations
Potential random process termination
This approach runs the queue worker periodically through cron jobs. While not ideal, it's often the most reliable method on shared hosting.
After uploading the extracted files, Find the included shell script process_queue.sh
in your project root folder.
Login via ssh and make the file executable . Make the script executable: (Can be skipped on some web hosts.)
Add a cron job in cPanel:
If your hosting provider restricts background processes, consider using the database queue driver with frequent cron execution:
Configure .env
:
Create jobs table:
Create a more frequent cron job:
Some shared hosts provide Redis. If available:
Install predis:
Configure .env
:
Betriver comes with a websoket setup using laravel reverb. but like the queue:worker, you need to run an monitor the command reverb:start. SO set in the same way you setup your websockets above only replace this queue:work with reverb:start. EG