Kick off a software project quickly.
Centrifugo — real-time on your VPS: WebSocket, publish API, JWT tokens and a password-protected admin console, with no third-party service.
In validation
Automatic installation for this solution is ready and currently going through our tests on a real server. Ordering will open as soon as validation is complete.
Centrifugo is an open-source real-time messaging server (Apache-2.0 license), written in Go. It takes care of the hardest part of real-time: keeping thousands of WebSocket connections open and delivering to each one the messages that concern it. Your application stays in PHP, Python, Node.js, Go or Ruby, and only makes an HTTP call to publish.
The principle is simple. Your backend signs a JWT for each user; the browser or mobile app uses it to open a connection on `wss://your-domain/connection/websocket`. When something happens — a paid order, a chat message, an alert — your backend calls the `/api/publish` API with its key, and Centrifugo pushes the message to every subscriber of the channel. It is a self-hosted alternative to Pusher, Ably or PubNub, with no per-message billing.
X-API-Key header is enough to send a message to a channel, from any language.Tell a customer the moment their order is paid or their ticket gets a reply, without them reloading the page.
Add messaging or instant comments to your web or mobile app; your backend keeps the logic and the database.
Push counters, delivery statuses or prices to open screens instead of polling them every second.
Guide optimized for ServOrbit Cloud VPS.
Order an Ubuntu 24.04 VPS; 1 GB of RAM is enough to start. Centrifugo requires a domain: browsers connect to it over wss:// and your backend calls its API over HTTPS, on a stable name. It opens on a subdomain of one of your domains, or on the VPS's free subdomain (centrifugo.{dns_slug}.servorbit-dns.com), HTTPS included. No need to buy a domain name.
In your client area, select Centrifugo, choose the address and click Install. The script deploys the official container, generates the console password, the server API key and the token signing key, then configures the nginx reverse proxy over HTTPS, WebSocket included.
Open https://your-domain: the admin console asks for a password. Enter the one shown in your client area. The home page shows the node version and the number of connected clients.
Connect to the VPS over SSH and read /opt/centrifugo/.env: ENCRYPTION_KEY is the server API key (X-API-Key header) and ENCRYPTION_KEY_HEX64 is the HMAC key that signs connection tokens. Store them in your application's secrets, never in code sent to the browser.
Your backend signs an HS256 JWT (sub = user ID, channels = channels to follow) and hands it to the browser, which connects with the centrifuge SDK on wss://your-domain/connection/websocket. Add your site's origin to CENTRIFUGO_CLIENT_ALLOWED_ORIGINS in /opt/centrifugo/docker-compose.yml, restart with docker compose up -d, then publish with a POST to https://your-domain/api/publish.
Self-hosted push notification server: send alerts from any script, CI/CD pipeline or monitoring tool with a plain HTTP PUT/POST — no API key, no subscription, no rate limits.
DatabasesIn-memory store for caching, sessions, queues and real-time data structures.
DevelopmentSelf-hosted open-source Firebase alternative — a full Postgres backend with instant REST APIs, authentication and the Studio dashboard, deployed from Supabase's own official Docker stack.
Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.
Message us on WhatsAppopens in a new tab