Kick off a software project quickly.

Logo Centrifugo

Centrifugo

Centrifugo — real-time on your VPS: WebSocket, publish API, JWT tokens and a password-protected admin console, with no third-party service.

1 GB minimum RAM 1 vCPU Port 8113 In validation

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.

Tech stack

DockerGoCentrifugo
Minimum RAM1 GB minimum
Minimum CPU1 vCPU
Default port8113
Compatible OSChoice of Linux distributions

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.

Key features

Real-time connections — WebSocket, with official client SDKs for JavaScript, Dart/Flutter, Swift, Java/Android, Go and Python.
Publish API — one HTTP call with the X-API-Key header is enough to send a message to a channel, from any language.
Token authentication — your backend signs JWTs (HS256); a connection without a valid token is refused.
Channels and server-side subscriptions — a user's channel list can be carried by their token, with no extra client code.
Admin console — node status, number of connected clients and API commands from the browser, protected by a password.
Lightweight — a single Go binary, a few tens of MB of RAM at rest.

When to use this solution?

1

Live notifications

Tell a customer the moment their order is paid or their ticket gets a reply, without them reloading the page.

2

Real-time chat and comments

Add messaging or instant comments to your web or mobile app; your backend keeps the logic and the database.

3

Dashboards that update themselves

Push counters, delivery statuses or prices to open screens instead of polling them every second.

Deploy Centrifugo on your VPS

Guide optimized for ServOrbit Cloud VPS.

01

Create the VPS and choose the address

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.

02

Install Centrifugo from the Marketplace

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.

03

Log in for the first time

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.

04

Retrieve your backend keys

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.

05

Publish and connect your clients

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.

Frequently asked questions

The service is the same: your backend publishes, subscribed browsers receive the message live. Pusher and Ably are hosted services billed by connections and messages; Centrifugo runs on your VPS, with no per-message billing, and your data never leaves your server. In return, running the server is up to you.

Kick off a software project quickly.

Centrifugo isn't orderable yet.

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.

Need help?

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