LinuxTutorialsUbuntu

How To Install Centrifugo on Ubuntu 20.04 LTS

Install Centrifugo on Ubuntu 20.04

In this tutorial, we will show you how to install Centrifugo on Ubuntu 20.04 LTS. For those of you who didn’t know, Centrifugo is a scalable real-time messaging server in a language-agnostic way. It can use as a free alternative to pusher.com services. Centrifugo supports WebSocket and SockJS. Websocket or SockJS connections from application clients (from web browsers or other environments like iOS/Android apps). When you need to deliver an event to your clients in real-time you publish it to Centrifugo API and Centrifugo then broadcasts the event to all connected clients interested in this event (i.e. clients subscribed to the event channel). In other words – this is a user-facing PUB/SUB server.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of Centrifugo on an Ubuntu 20.04 (Focal Fossa) server. You can follow the same instructions for Ubuntu 18.04, 16.04, and any other Debian-based distribution like Linux Mint.

Prerequisites

  • A server running one of the following operating systems: Ubuntu 20.04, and any other Debian-based distribution like Linux Mint.
  • It’s recommended that you use a fresh OS install to prevent any potential issues.
  • SSH access to the server (or just open Terminal if you’re on a desktop).
  • An active internet connection. You’ll need an internet connection to download the necessary packages and dependencies for Centrifugo.
  • A non-root sudo user or access to the root user. We recommend acting as a non-root sudo user, however, as you can harm your system if you’re not careful when acting as the root.

Install Centrifugo on Ubuntu 20.04 LTS Focal Fossa

Step 1. First, make sure that all your system packages are up-to-date by running the following apt commands in the terminal.

sudo apt update
sudo apt upgrade

Step 2. Installing Centrifugo on Ubuntu 20.04.

Now we download the latest version Centrifugo packages from Github:

wget https://github.com/centrifugal/centrifugo/releases/download/v5.0.2/centrifugo_5.0.2_linux_amd64.tar.gz
tar zxvf centrifugo_5.0.2_linux_amd64.tar.gz

Confirm successful installation by checking the software version:

centrifugo version

Next, we edit the Centrifugo config:

./centrifugo genconfig

Add the following line:

{
  "v3_use_offset": true,
  "token_hmac_secret_key": "145191ff-272a-421b-95af-b006c554813e",
  "admin_password": "0e539f48-godet-4c3f-afcd-62d0f5cbf9f2",
  "admin_secret": "b1bb30a7-mei-4dc0-9a88-2b27d8d25abf",
  "api_key": "e005dbe1-d5d2-464b-a406-e1cc617ea8d0"
}

Now run Centrifugo with admin panel enabled:

./centrifugo --config config.json --admin

Accessing Centrifugo web interface admin console:

http://your-server-ip-address:8000

Install Centrifugo on Ubuntu 20.04

Step 3. Create Systemd Service Unit.

Now we create the systemd service since it’ll be easy to run the service on booting, starting, and stopping the service too:

nano /lib/systemd/system/centrifugo.service

Add the following line:

[Unit]
Description=Centrifugo Websocket Server
After=network.target syslog.target
 
[Service]
User=[USERNAME]
Group=[USERNAME]
LimitNOFILE=30000
 
Environment="CONFIG=/home/[USERNAME]/config.json"
ExecStartPre=/home/[USERNAME]/centrifugo checkconfig --config $CONFIG
ExecStart=/home/[USERNAME]/centrifugo --config $CONFIG --admin
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
TimeoutStopSec=5
KillMode=control-group
RestartSec=2
Restart=always
SyslogIdentifier=centrifugo
 
[Install]
WantedBy=multi-user.target
Alias=centrifugo.service

Save and close, also reload systemd services:

sudo systemctl daemon-reload
sudo systemctl start centrifugo
sudo systemctl enable centrifugo

Congratulations! You have successfully installed Centrifugo. Thanks for using this tutorial for installing Centrifugo on Ubuntu 20.04 LTS Focal Fossa system. For additional help or useful information, we recommend you check the official Centrifugo website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is a seasoned Linux system administrator with a wealth of experience in the field. Known for his contributions to idroot.us, r00t has authored numerous tutorials and guides, helping users navigate the complexities of Linux systems. His expertise spans across various Linux distributions, including Ubuntu, CentOS, and Debian. r00t's work is characterized by his ability to simplify complex concepts, making Linux more accessible to users of all skill levels. His dedication to the Linux community and his commitment to sharing knowledge makes him a respected figure in the field.
Back to top button