Comment installer le serveur de messagerie Centrifugo sur Ubuntu 20.04

Centrifugo est un serveur de messagerie gratuit, open-source et en temps réel. Il prend en charge WebSocket et SockJS pour établir une connexion depuis les clients de l’application via le navigateur Web. Il est rapide et capable de gérer des millions de connexions simultanées. Il peut facilement intégrer ton application existante. Elle est agnostique en termes de langage et son API peut être utilisée à partir de n’importe quel langage de programmation.

Dans ce guide, nous allons te montrer comment installer Centrifugo sur le serveur Ubuntu 20.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Avant de commencer, tu dois mettre à jour tes paquets système à la dernière version. Tu peux les mettre à jour à l’aide de la commande suivante :

apt-get update -y

Une fois que ton serveur est mis à jour, tu peux passer à l’étape suivante.

Installe Centrifugo

Par défaut, le paquet Centrifugo n’est pas inclus dans le dépôt par défaut d’Ubuntu 20.04. Tu devras donc télécharger son binaire depuis le dépôt Git.

Tu peux télécharger la dernière version de Centrifugo avec la commande suivante :

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

Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf centrifugo_2.8.4_linux_amd64.tar.gz

Ensuite, déplace le binaire Centrifugo dans le répertoire /usr/bin :

mv centrifugo /usr/bin

Maintenant, vérifie la version de Centrifugo à l’aide de la commande suivante :

centrifugo version

Tu devrais voir la sortie suivante :

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

Configurer Centrifugo

Ensuite, tu devras générer le fichier de configuration de Centrifugo. Tu peux le générer à l’aide de la commande suivante :

centrifugo genconfig

Cette commande va générer un fichier config.json dans ton répertoire de travail actuel. Tu peux le vérifier avec la commande suivante :

cat config.json

Tu devrais obtenir la sortie suivante :

{
  "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": []
}

Remarque: Note le mot de passe admin_password de la sortie ci-dessus. Tu en auras besoin pour te connecter à l’interface Web.

Ensuite, crée un répertoire pour Centrifugo avec la commande suivante :

mkdir /etc/centrifugo

Ensuite, copie le fichier config.json dans le répertoire /etc/centrifugo :

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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Crée un fichier de service Systemd pour Centrifugo

Ensuite, tu devras créer un fichier de service systemd pour gérer le service Centrifugo. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/centrifugo.service

Ajoute les lignes suivantes :

[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

Enregistre et ferme le fichier puis recharge le démon systemd pour appliquer les modifications :

systemctl daemon-reload

Ensuite, démarre le service Centrifugo et active-le pour qu’il démarre au redémarrage du système :

systemctl start centrifugo
systemctl enable centrifugo

Tu peux vérifier l’état du service Centrifugo avec la commande suivante :

systemctl status centrifugo

Tu devrais voir la sortie suivante :

? 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>

À ce stade, le service Centrifugo est démarré et écoute sur le port 8000. Tu peux le vérifier avec la commande suivante :

ss -tunelp | grep 8000

Tu devrais obtenir la sortie suivante :

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

Accède à l’interface Web de Centrifugo

Maintenant, ouvre ton navigateur Web et accède à l’interface Web de Centrifugo en utilisant l’URL http://your-server-ip:8000. Tu seras redirigé vers la page de connexion de Centrifugo :

Serveur de messagerie centrifuge

Indique ton mot de passe administrateur et clique sur le bouton LOG IN. Tu devrais voir le tableau de bord de Centrifugo sur la page suivante :

Node list

Conclusion

Félicitations ! Tu as installé avec succès le serveur Centrifugo sur le serveur Ubuntu 20.04. Pour plus d’informations, tu devrais lire la documentation de Centrifugo.

Vous aimerez aussi...