Deploy Soketi | (Just Updated) Pusher-Compatible WebSockets, Port Fixed for Railway
Self-hosted Pusher-compatible WebSocket server, port wired for Railway
Just deployed
Deploy and Host Soketi on Railway
Soketi is an open-source, Pusher-compatible WebSockets server. It lets Laravel Echo, pusher-js and any Pusher SDK talk to your own server instead of a paid hosted service, with channels, presence, client events and a REST API for publishing from your backend.
This template runs Soketi 1.6.1 as a single service from a digest-pinned official image, with an app ID, key and secret generated for you on every deploy.
About Hosting Soketi
Soketi needs a little care to work behind Railway's edge:
- The listening port follows Railway. Soketi ignores the
PORTvariable Railway injects and listens on 6001, so the public domain and the healthcheck would miss it. The start command setsSOKETI_PORTfrom$PORT, so the domain and the/readyhealthcheck reach the server. - Credentials are generated.
SOKETI_DEFAULT_APP_ID,SOKETI_DEFAULT_APP_KEYandSOKETI_DEFAULT_APP_SECRETare random per deploy, so the well-knownapp-id/app-keydefaults are never live on a public URL. - Stateless by design. Soketi keeps connection state in memory, so there is no volume to manage.
Common Use Cases
- Real-time updates for Laravel apps through Laravel Echo and broadcasting
- Live notifications, chat and presence in web and mobile apps using pusher-js
- A self-hosted drop-in replacement for Pusher Channels
- Dashboards that push events from a backend through the REST API
Dependencies for Soketi Hosting
- None. Soketi runs as one service with no database.
Deployment Dependencies
- Soketi documentation: https://docs.soketi.app/
- Official image: https://quay.io/repository/soketi/soketi
Implementation Details
| Variable | Purpose |
|---|---|
SOKETI_DEFAULT_APP_ID | App ID your backend uses with the Pusher SDK, generated per deploy. |
SOKETI_DEFAULT_APP_KEY | Public app key for browser clients, generated per deploy. |
SOKETI_DEFAULT_APP_SECRET | Secret for signing and the REST API, generated per deploy. Keep it server-side. |
Point a Pusher client at your domain with wsHost set to the Railway domain, wssPort 443 and forceTLS true.
Why Deploy Soketi on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Soketi on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
