GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déployer Rocket.Chat sur Ubuntu 18.04

Rocket.Chat est une plateforme de communication d'équipe open-source, une alternative Slack auto-hébergée. Il est développé à l'aide du framework Meteor et fournit diverses fonctionnalités, notamment le chat du service d'assistance, le partage de fichiers, la vidéoconférence, les messages vocaux, l'API, etc.

Rocket.Chat est une solution parfaite pour les entreprises et les communautés qui souhaitent héberger leur propre système de chat.

Dans ce tutoriel, nous allons vous montrer comment déployer Rocket.Chat sur un serveur Ubuntu 18.04 et configurer Nginx en tant que proxy inverse SSL.

Prérequis #

Avant de poursuivre ce didacticiel, assurez-vous que vous disposez des prérequis suivants.

  • Serveur Ubuntu 18.04. Selon la configuration système officielle de Rocket.Chat, vous avez besoin d'au moins 1 G de RAM.
  • Un nom de domaine pointant vers l'adresse IP de votre serveur. Nous utiliserons chat.example.com .
  • Nginx installé, en suivant ce tutoriel.
  • Vous avez installé un certificat SSL pour votre domaine. Vous pouvez générer un certificat SSL Let's Encrypt gratuit en suivant ce tutoriel.

Installation de Node.js #

Commencez par mettre à jour votre liste de packages système :

sudo apt update

Installez Node.js, npm et toutes les autres dépendances requises pour créer des packages npm à partir de la source :

sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick

Au moment de la rédaction de cet article, la version recommandée de Node.js pour Rocket.Chat est Node.js v8.11.3.

Nous allons utiliser n , un package npm qui nous permet de gérer de manière interactive les versions de Node.js.

Exécutez les commandes suivantes pour installer n et la version recommandée de Node.js :

sudo npm install -g inherits nsudo n 8.11.3

Installation de MongoDB #

MongoDB est une base de données orientée document NoSQL et est utilisée par Rocket.Chat comme magasin de données.

Nous allons installer MongoDB à partir des dépôts MongoDB officiels.

Importez la clé publique MongoDB et activez le dépôt officiel MongoDB avec la commande suivante :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Une fois le référentiel apt activé, mettez à jour la liste des packages et installez MongoDB en tapant :

sudo apt updatesudo apt install mongodb-org

Une fois l'installation terminée, activez et démarrez le service MongoDB :

sudo systemctl start mongodsudo systemctl enable mongod

Créer un nouveau numéro d'utilisateur système

Pour créer un nouvel utilisateur et un groupe nommé rocket , qui exécutera l'instance Rocket.Chat, tapez :

sudo useradd -m -U -r -d /opt/rocket rocket

Ajoutez le www-data utilisateur au nouveau groupe d'utilisateurs et modifiez le /opt/rocket autorisations de répertoire pour que le Nginx puisse accéder à l'installation de Rocket.Chat :

sudo usermod -a -G rocket www-datasudo chmod 750 /opt/rocket

Installation de Rocket.Chat #

Passez à l'utilisateur rocket :

sudo su - rocket

Les commandes suivantes supposent que vous opérez actuellement en tant qu'utilisateur rocket .

Téléchargez la dernière version stable de Rocket.Chat avec curl :

curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

Une fois le téléchargement terminé, extrayez l'archive et renommez le répertoire en Rocket.Chat :

tar zxf rocket.chat.tgzmv bundle Rocket.Chat

Passez au Rocket.Chat/programs/server répertoire et installez tous les packages npm requis :

cd Rocket.Chat/programs/servernpm install

Afin de tester notre installation avant de créer une unité systemd et de configurer un proxy inverse avec Nginx, nous allons définir les variables d'environnement requises et démarrer le serveur Rocket.Chat

export PORT=3000export ROOT_URL=http://0.0.0.0:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat

Revenez dans le Rocket.Chat répertoire et démarrez le Rocket.Chat serveur en exécutant les commandes suivantes :

cd ../../node main.js

S'il n'y a pas d'erreurs, vous devriez voir le résultat suivant :

➔ +---------------------------------------------+
➔ |                SERVER RUNNING               |
➔ +---------------------------------------------+
➔ |                                             |
➔ |  Rocket.Chat Version: 0.71.1                |
➔ |       NodeJS Version: 8.11.3 - x64          |
➔ |             Platform: linux                 |
➔ |         Process Port: 3000                  |
➔ |             Site URL: http://0.0.0.0:3000/  |
➔ |     ReplicaSet OpLog: Disabled              |
➔ |          Commit Hash: e73dc78ffd            |
➔ |        Commit Branch: HEAD                  |
➔ |                                             |
➔ +---------------------------------------------+

Arrêtez le serveur Rocket.Chat avec CTRL+C .

Revenez à votre utilisateur sudo en tapant exit et passez aux étapes suivantes.

Créer une unité Systemd #

Pour exécuter Rocket.Chat en tant que service, nous allons créer un rocketchat.service fichier d'unité dans le /etc/systemd/system/ répertoire.

sudo nano /etc/systemd/system/rocketchat.service

Collez le contenu suivant :

/etc/systemd/system/rocketchat.service
[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=https://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

Avertissez systemd que nous avons créé un nouveau fichier d'unité et démarrez le service Rocket.Chat en exécutant :

sudo systemctl daemon-reloadsudo systemctl start rocketchat

Vérifiez l'état du service en saisissant :

sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
 Main PID: 12693 (node)
    Tasks: 10 (limit: 2319)
   CGroup: /system.slice/rocketchat.service
           `-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

Enfin, activez le démarrage automatique du service Rocket.Chat au démarrage avec la commande suivante :

sudo systemctl enable rocketchat

Configurer un proxy inverse avec Nginx #

Si vous avez suivi nos guides d'installation de Nginx sur Ubuntu 18.04 et de sécurisation de Nginx avec Let's Encrypt sur Ubuntu 18.04, Nginx devrait déjà être installé et configuré avec un certificat SSL.

Nous devons maintenant créer un nouveau bloc de serveur Nginx pour l'installation de Rocket.Chat.

Ouvrez votre éditeur de texte et créez le fichier suivant :

sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.conf
upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name chat.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://chat.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name chat.example.com;

    ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/chat.example.com-access.log;
    error_log /var/log/nginx/chat.example.com-error.log;

    location / {
        proxy_pass http://rocketchat_backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Activez le nouveau bloc serveur en créant un lien symbolique du fichier vers le répertoire sites-enabled :

sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/

Rechargez le service Nginx pour que les modifications prennent effet :

sudo systemctl reload nginx

Configuration de Rocket.Chat #

Ouvrez votre navigateur et tapez :http://chat.example.com .

En supposant que l'installation est réussie, l'assistant de configuration de Rocket.Chat vous sera présenté, qui vous guidera dans la configuration de votre premier utilisateur administrateur, la configuration de votre organisation et l'enregistrement de votre serveur pour recevoir des notifications push gratuites et plus encore.

La première section de l'assistant de configuration initiale vous demandera de configurer votre utilisateur administrateur :

Une fois que vous avez terminé d'entrer les informations d'administration, cliquez sur Continue et à l'étape suivante, entrez les informations de votre organisation :

La troisième section de l'assistant de configuration initiale vous demandera d'entrer les informations du serveur :

À l'étape suivante, il vous sera demandé si vous souhaitez utiliser les passerelles et proxys préconfigurés de Rocket.Chat. La sélection de cette option vous donnera accès au marché des applications Rocket.Chat et à d'autres fonctionnalités telles que les notifications push. .

Faites votre choix, cliquez sur Continue , et vous serez redirigé vers la page suivante indiquant que votre espace de travail est prêt à être utilisé :

Cliquez sur le Go to your workspace et vous serez redirigé vers le tableau de bord Rocket.Chat connecté en tant qu'utilisateur administrateur.


Ubuntu
  1. Comment mettre à niveau vers Ubuntu 20.04

  2. Comment installer Let's Chat sur Ubuntu 20.04 ?

  3. Comment installer Rocket.Chat sur CentOS 7

  4. Comment installer Rocket.Chat sur Ubuntu 16.04

  5. Comment installer Rocket.Chat sur Ubuntu 18.04

Comment déployer Mattermost sur Ubuntu 20.04

Comment installer Rocket.chat avec le proxy inverse nginx sur Ubuntu 20.04

Comment installer Rocket.Chat sur Ubuntu 16.04 LTS

Comment installer Rocket.Chat sur Ubuntu 20.04 LTS

Comment déployer un serveur TeamSpeak sur Ubuntu 20.04

Comment déployer Rocket Chat avec Nginx sur Ubuntu 18.04