I've been trying to get Laravel Reverb to work on one of our applications for quite some time now. But can't get it to work.
Here are some of my configs:
reverb.php
<?php
return [
'default' => env('REVERB_SERVER', 'reverb'),
'servers' => [
'reverb' => [
'host' => env('REVERB_SERVER_HOST', '0.0.0.0'),
'port' => env('REVERB_SERVER_PORT', 8080),
'hostname' => env('REVERB_HOST'),
'options' => [
'tls' => [],
],
'max_request_size' => env('REVERB_MAX_REQUEST_SIZE', 10_000),
'scaling' => [
'enabled' => env('REVERB_SCALING_ENABLED', false),
'channel' => env('REVERB_SCALING_CHANNEL', 'reverb'),
'server' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', '6379'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'database' => env('REDIS_DB', '0'),
],
],
'pulse_ingest_interval' => env('REVERB_PULSE_INGEST_INTERVAL', 15),
'telescope_ingest_interval' => env('REVERB_TELESCOPE_INGEST_INTERVAL', 15),
],
],
'apps' => [
'provider' => 'config',
'apps' => [
[
'key' => env('REVERB_APP_KEY'),
'secret' => env('REVERB_APP_SECRET'),
'app_id' => env('REVERB_APP_ID'),
'options' => [
'host' => env('REVERB_HOST'),
'port' => env('REVERB_PORT', 443),
'scheme' => env('REVERB_SCHEME', 'https'),
'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
],
'allowed_origins' => ['*'],
'ping_interval' => env('REVERB_APP_PING_INTERVAL', 60),
'max_message_size' => env('REVERB_APP_MAX_MESSAGE_SIZE', 10_000),
],
],
],
];
This is my reverb settings in my .env
REVERB_APP_ID=<ID>
REVERB_APP_KEY=<KEY>
REVERB_APP_SECRET=<SECRET>
REVERB_HOST="admin.mydomain.net"
REVERB_PORT=6001
REVERB_SCHEME=https
The port is set to 6001 since our docker host already has port 8080 in use.
Here's my port and traefik label configs
ports:
- 127.0.0.1:${PORT}:80
- 127.0.0.1:${REVERB_PORT}:8080
labels:
# App config
- "traefik.enable=true"
- "traefik.http.routers.${NAME}.entrypoints=websecure"
- "traefik.http.routers.${NAME}.rule=Host(`${HOST_URL}`)"
- "traefik.http.routers.${NAME}.tls=true"
- "traefik.http.routers.${NAME}.service=www-${NAME}"
- "traefik.http.services.www-${NAME}.loadbalancer.server.port=80"
# Reverb config
- "traefik.http.routers.reverb.entrypoints=websecure"
- "traefik.http.routers.reverb.rule=Host(`${HOST_URL}`) && PathPrefix(`/app`)"
- "traefik.http.routers.reverb.tls=true"
- "traefik.http.routers.reverb.service=reverb"
- "traefik.http.services.reverb.loadbalancer.server.port=8080"
- "traefik.http.services.reverb.loadbalancer.server.scheme=http"
- "traefik.http.routers.reverb.middlewares=reverb-headers"
- "traefik.http.middlewares.reverb-headers.headers.customrequestheaders.Upgrade=websocket"
- "traefik.http.middlewares.reverb-headers.headers.customrequestheaders.Connection=Upgrade"
In my docker .env REVERB_PORT is set to 6001 and HOST_URL is admin.mydomain.net
My container and supervisor runs, but getting this console error
WebSocket connection to 'wss://admin.mydomain.nu:6001/app/oazik64cfikv7d97fmcx?protocol=7&client=js&version=8.4.0-rc2&flash=false' failed: WebSocket is closed before the connection is established.
I hope someone can point me in the right direction, and please just let me know if you need more information