darknautica / relay-cloud-laravel
Official Laravel package for Relay Cloud — zero-config WebSocket broadcasting
Package info
github.com/DarkNautica/relay-cloud-laravel
pkg:composer/darknautica/relay-cloud-laravel
Requires
- php: ^8.1
- illuminate/broadcasting: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- pusher/pusher-php-server: ^7.2
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0|^11.0
README
Zero-config WebSocket broadcasting for Laravel, powered by Relay Cloud.
Installation
composer require darknautica/relay-cloud-laravel
Add your credentials to .env:
RELAY_APP_KEY=your-app-key RELAY_APP_SECRET=your-app-secret
That's it. Broadcasting works. No manual editing of config/broadcasting.php required.
Find your credentials at relaycloud.dev under your project's settings.
Usage
Verify your setup
php artisan relay:install
This prints your connection details and the Laravel Echo JavaScript snippet you need for your frontend.
Laravel Echo setup
Add this to resources/js/bootstrap.js:
import Echo from 'laravel-echo'; import Pusher from 'pusher-js'; window.Pusher = Pusher; window.Echo = new Echo({ broadcaster: 'pusher', key: import.meta.env.VITE_RELAY_APP_KEY, wsHost: 'ws.relaycloud.dev', wsPort: 443, wssPort: 443, forceTLS: true, disableStats: true, enabledTransports: ['ws', 'wss'], });
Add to your .env:
VITE_RELAY_APP_KEY="${RELAY_APP_KEY}"
Broadcasting events
Use Laravel broadcasting as normal. All standard features work out of the box:
broadcast(new OrderShipped($order));
Self-hosted Relay
To point at your own Relay server instead of Relay Cloud, set these additional environment variables:
RELAY_HOST=your-relay-host.example.com RELAY_PORT=6001 RELAY_SCHEME=https
For local development without SSL:
RELAY_HOST=127.0.0.1 RELAY_PORT=6001 RELAY_SCHEME=http
Publishing the config
If you need to customize the configuration beyond environment variables:
php artisan vendor:publish --tag=relay-config
This publishes config/relay.php to your application's config directory.
Local Development
To test the package in a local Laravel app before publishing to Packagist:
- In your Laravel app's
composer.json, add:
"repositories": [ { "type": "path", "url": "../relay-cloud-laravel" } ]
- Then require the package:
composer require darknautica/relay-cloud-laravel:@dev
Requirements
- PHP 8.1+
- Laravel 10, 11, or 12
License
MIT. See LICENSE for details.