Skip to content

Server setup

Three things run in the background. The admin’s System health page shows whether each one is alive.

What it doesNeeded
SchedulerTimed jobs: cancelling unpaid orders, releasing scheduled orders, reports, backups, exchange rates, the weekly GeoIP update.Yes
Queue workerSends emails and push notifications, imports catalogues, runs exports — so pages stay fast.Yes
RealtimePushes new orders and status changes to the admin, store panel and apps instantly. Without it they refresh every few seconds instead.Recommended

Add one cron job that runs every minute. Replace the path with where you uploaded RapidMart.

Terminal window
* * * * * cd /home/you/rapidmart && php artisan schedule:run >> /dev/null 2>&1

cPanel → Cron Jobs → Common settings: Once per minute → paste the command above (only the part after the five *) → Add New Cron Job.

The worker is a process that keeps running. Restart it after every update (php artisan queue:restart — Supervisor starts it again).

/etc/supervisor/conf.d/rapidmart-worker.conf
[program:rapidmart-worker]
command=php /var/www/rapidmart/artisan queue:work --queue=realtime,default --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=1
stopwaitsecs=60

Then sudo supervisorctl reread && sudo supervisorctl update.

RapidMart uses Laravel Reverb (included, self-hosted) or Pusher (hosted).

  • Reverb: Admin → Settings → Realtime → Reverb, enter your public host, and save — the keys are generated for you. Then run php artisan reverb:start --host=127.0.0.1 --port=8080 under Supervisor, and proxy your websocket host (HTTPS) to it.
  • Pusher: create a Pusher Channels app, then enter its keys in Admin → Settings → Realtime.

Step by step, with the Supervisor and Nginx settings: Realtime.