Cómo instalar el servidor de mensajería Centrifugo en Ubuntu 20.04

Centrifugo es un servidor de mensajería gratuito, de código abierto y en tiempo real. Soporta WebSocket y SockJS para realizar una conexión desde los clientes de la aplicación a través del navegador web. Es rápido y capaz de manejar millones de conexiones simultáneas. Puede integrar fácilmente tu aplicación existente. Es agnóstico al lenguaje y su API puede utilizarse desde cualquier lenguaje de programación.

En esta guía, te mostraremos cómo instalar Centrifugo en el servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

Antes de empezar, tendrás que actualizar los paquetes del sistema a la última versión. Puedes actualizarlos con el siguiente comando:

apt-get update -y

Una vez que tu servidor esté actualizado, puedes pasar al siguiente paso.

Instalar Centrifugo

Por defecto, el paquete Centrifugo no está incluido en el repositorio por defecto de Ubuntu 20.04. Así que tendrás que descargar su binario desde el repositorio Git.

Puedes descargar la última versión de Centrifugo con el siguiente comando:

wget https://github.com/centrifugal/centrifugo/releases/download/v2.8.4/centrifugo_2.8.4_linux_amd64.tar.gz

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

A continuación, mueve el binario de Centrifugo al directorio /usr/bin:

mv centrifugo /usr/bin

Ahora, verifica la versión de Centrifugo con el siguiente comando:

centrifugo version

Deberías ver la siguiente salida:

Centrifugo v2.8.4 (Go version: go1.16.3)

Configurar Centrifugo

A continuación, tendrás que generar el archivo de configuración de Centrifugo. Puedes generarlo con el siguiente comando:

centrifugo genconfig

Este comando generará un archivo config.json en tu directorio de trabajo actual. Puedes comprobarlo con el siguiente comando:

cat config.json

Deberías obtener la siguiente salida:

{
  "v3_use_offset": true,
  "token_hmac_secret_key": "03599f21-9737-40bc-821e-afe34c1849ec",
  "admin_password": "51d88406-da91-4aab-979a-c2114b51a14c",
  "admin_secret": "fa12779d-ba9a-48b9-9cff-14bf96ee79b7",
  "api_key": "e667e485-1b46-4a5e-991e-a69729b57d07",
  "allowed_origins": []
}

Nota: Anota la contraseña admin de la salida anterior. La necesitarás para acceder a la interfaz web.

A continuación, crea un directorio para Centrifugo con el siguiente comando:

mkdir /etc/centrifugo

A continuación, copia el archivo config.json en el directorio /etc/centrifugo:

mv config.json /etc/centrifugo/config.json

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear un archivo de servicio Systemd para Centrifugo

A continuación, tendrás que crear un archivo de servicio systemd para gestionar el servicio Centrifugo. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/centrifugo.service

Añade las siguientes líneas:

[Unit]
Description=Centrifugo Websocket Server
After=network.target syslog.target
 
[Service]
LimitNOFILE=30000
ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json
ExecStart=/usr/bin/centrifugo --config /etc/centrifugo/config.json --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

Guarda y cierra el archivo y vuelve a cargar el demonio systemd para aplicar los cambios:

systemctl daemon-reload

A continuación, inicia el servicio Centrifugo y permite que se inicie al reiniciar el sistema:

systemctl start centrifugo
systemctl enable centrifugo

Puedes comprobar el estado del servicio Centrifugo con el siguiente comando:

systemctl status centrifugo

Deberías ver la siguiente salida:

? centrifugo.service - Centrifugo Websocket Server
     Loaded: loaded (/etc/systemd/system/centrifugo.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-22 10:01:52 UTC; 4s ago
    Process: 3024 ExecStartPre=/usr/bin/centrifugo checkconfig --config /etc/centrifugo/config.json (code=exited, status=0/SUCCESS)
   Main PID: 3040 (centrifugo)
      Tasks: 6 (limit: 2353)
     Memory: 7.8M
     CGroup: /system.slice/centrifugo.service
             ??3040 /usr/bin/centrifugo --config /etc/centrifugo/config.json --admin

May 22 10:01:51 ubuntu2004 systemd[1]: Starting Centrifugo Websocket Server...
May 22 10:01:52 ubuntu2004 systemd[1]: Started Centrifugo Websocket Server.
May 22 10:01:52 ubuntu2004 centrifugo[3040]: {"level":"info","version":"2.8.4","runtime":"go1.16.3","pid":3040,"engine":"Memory","gomaxprocs":>
May 22 10:01:52 ubuntu2004 centrifugo[3040]: {"level":"info","path":"/etc/centrifugo/config.json","time":"2021-05-22T10:01:52Z","message":"usi>
May 22 10:01:52 ubuntu2004 centrifugo[3040]: {"level":"info","time":"2021-05-22T10:01:52Z","message":"serving websocket, SockJS, API, admin en>

En este momento, el servicio Centrifugo está iniciado y a la escucha en el puerto 8000. Puedes comprobarlo con el siguiente comando:

ss -tunelp | grep 8000

Deberías obtener la siguiente salida:

tcp   LISTEN 0      4096                                  *:8000              *:*       users:(("centrifugo",pid=3040,fd=3)) ino:26878 sk:c v6only:0 <->        

Accede a la interfaz web de Centrifugo

Ahora, abre tu navegador web y accede a la interfaz web de Centrifugo utilizando la URL http://your-server-ip:8000. Serás redirigido a la página de inicio de sesión de Centrifugo:

Servidor de mensajería centrífugo

Proporciona tu contraseña de administrador y haz clic en el botón INICIAR S ESIÓN. Deberías ver el panel de control de Centrifugo en la siguiente página:

Lista de nodos

Conclusión

Enhorabuena! has instalado con éxito el servidor Centrifugo en el servidor Ubuntu 20.04. Para más información, deberías leer la documentación de Centrifugo.

También te podría gustar...