Realtime & Broadcasting
Settings โ Advanced โ Realtime configures the WebSocket broadcasting layer that powers live updates in the LeadHub admin panel.
When realtime is enabled:
- The Live Lead Feed widget on the dashboard updates instantly when a new lead arrives
- Notification badges appear without page refresh
- The Kanban board reflects drag-and-drop changes by other team members in real time
When realtime is disabled, the panel falls back to polling (page refreshes every 30 seconds).
Supported Driversโ
| Driver | Hosted? | Cost | Notes |
|---|---|---|---|
| Pusher | โ Cloud | Free tier available | Most popular, easiest setup |
| Laravel Reverb | โ Self-hosted | Free (server cost only) | Official Laravel WebSocket server |
| Soketi | โ Self-hosted | Free (server cost only) | Lightweight Pusher-compatible server |
| Disabled (polling) | โ | Free | No WebSockets; panel polls instead |
Shared hosting: Pusher is the easiest option. Self-hosted Reverb/Soketi require a VPS with persistent processes.
Option A โ Pusher (Hosted)โ
Step 1 โ Create a Pusher Appโ
- Sign up at pusher.com (free tier: 200 connections, 200k messages/day).
- Go to Channels โ Create App.
- Give it a name (e.g. LeadHub) and select your region.
- Under App Keys, copy:
- App ID
- Key
- Secret
- Cluster (e.g.
us2,eu)
Step 2 โ Configure in LeadHubโ
-
Go to Settings โ Advanced โ Realtime.
-
Set Driver to Pusher / Soketi / Reverb (Pusher Protocol).
-
Fill in:
Field Value Enable Realtime Updates Toggle on App ID From Pusher App Keys App Key From Pusher App Keys App Secret From Pusher App Keys Cluster Your Pusher cluster (e.g. us2)Custom Host Leave blank (Pusher cloud) Port 443Scheme HTTPS -
Click Save Settings.
Option B โ Laravel Reverb (Self-Hosted)โ
Reverb is an official Laravel WebSocket server that uses the Pusher protocol.
Step 1 โ Install Reverbโ
On your server:
php artisan reverb:install
Start Reverb with Supervisor:
[program:reverb]
command=php /var/www/leadhub/artisan reverb:start --host=0.0.0.0 --port=8080
autostart=true
autorestart=true
user=www-data
Step 2 โ Configure in LeadHubโ
-
Go to Settings โ Advanced โ Realtime.
-
Fill in:
Field Value App ID Any string, e.g. leadhub-reverbApp Key Any string (must match Reverb config) App Secret Any string (must match Reverb config) Cluster Leave blank Custom Host Your server's hostname (e.g. ws.yourdomain.com)Port 8080(or your Reverb port)Scheme HTTPS(if behind SSL proxy) orHTTP
Option C โ Soketi (Self-Hosted, Lightweight)โ
Soketi is a lightweight Node.js Pusher-compatible server.
Step 1 โ Install Soketiโ
npm install -g @soketi/soketi
soketi start --config.port=6001 --config.appManager.driver=array \
--config.appManager.array.apps.0.id=leadhub \
--config.appManager.array.apps.0.key=leadhub-key \
--config.appManager.array.apps.0.secret=leadhub-secret
Step 2 โ Configure in LeadHubโ
-
Go to Settings โ Advanced โ Realtime.
-
Fill in:
Field Value App ID leadhub(your Soketi app ID)App Key leadhub-keyApp Secret leadhub-secretCustom Host Your server hostname Port 6001Scheme HTTPSorHTTP
Option D โ Disable Realtime (Polling)โ
- Go to Settings โ Advanced โ Realtime.
- Toggle Enable Realtime Updates off, or set Driver to Disabled (polling only).
- Click Save Settings.
The panel refreshes every 30 seconds. All features work correctly โ just without instant live updates.
Troubleshootingโ
| Problem | Solution |
|---|---|
| Live lead feed not updating | Verify the App Key/Secret matches your Pusher/Reverb/Soketi config |
| WebSocket connection errors in browser console | Check the Custom Host, Port, and Scheme settings |
| Reverb/Soketi not connecting | Ensure the process is running and port is accessible (firewall rules) |
| "Restart the queue worker after changing the driver" | If you change the broadcasting driver, restart your queue worker process |
After changing realtime settings, a hard browser refresh (Ctrl+Shift+R) is needed for the new settings to take effect in the frontend.