Si vous recherchez une plate-forme de chat open source auto-hébergée, Rocketchat peut être la meilleure option. Le chat Rocket peut être utilisé comme une alternative à différents canaux de communication tels que le mou, le plus important, etc. Le chat Rocket est livré avec différentes fonctionnalités telles que les discussions de groupe, la vidéoconférence et vous pouvez intégrer le chat en direct avec d'autres plateformes. Dans cet article, nous allons apprendre à configurer un système Rocketchat auto-hébergé avec des certificats SSL chiffrés.
Prérequis
- Nouveau serveur Ubuntu
- Accès root ou compte privilégié sudo
- Un nom de domaine pointé vers l'IP du serveur
- Connexion Internet pour télécharger des applications
Installer les packages et les dépendances requis
Avant d'installer les packages, mettez à jour le système Ubuntu à l'aide de la commande suivante
$ sudo apt-get update -y
Une fois la mise à jour du système terminée, configurez apt pour installer les packages MongoDB à l'aide de la commande suivante.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Sortie :
Pour configurer Node.js pour pouvoir installer en utilisant apt gestionnaire de packages exécutez la commande suivante.
$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Sortie :
Installez maintenant les outils de compilation Nodejs, MongoDB et graphicsmagick :
$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
Sortie :
Installez maintenant inherits et n, et la version du nœud requise par Rocketchat.
$ sudo npm install -g inherits n && sudo n 12.18.4
Pour vérifier la version de Nodejs installée, exécutez la commande suivante.
$ node --version
Sortie :
v12.18.4
Installer Rocketchat
Nous avons déjà installé les dépendances requises. Maintenant, dans cette étape, nous allons télécharger l'application Rocket Chat et l'installer sur Ubuntu 20.04.
Téléchargez la dernière version de Rocketchat à l'aide de la commande suivante.
$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Sortie :
Extrayez l'application téléchargée. Vous pouvez choisir votre répertoire préféré pour stocker le fichier extrait. Dans cet exemple, j'ai extrait le fichier dans le dossier /tmp répertoire.
$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp
Installez maintenant Rocketchat. Dans cet article /opt répertoire est utilisé pour l'installation. Vous pouvez préférer n'importe quel répertoire.
$ cd /tmp/bundle/programs/server && npm install
Sortie :
$ sudo mv /tmp/bundle /opt/Rocket.Chat
Configurer le service Rocket.Chat
Créez un utilisateur rocketchat, définissez l'autorisation appropriée pour le répertoire de l'application Rocket.Chat et créez le service Rocket.Chat.
$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Pour créer rocketchat.service, exécutez la commande suivante sur votre terminal
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service [Service] ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocketchat Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000 [Install] WantedBy=multi-user.target EOF
Exemple :
Nous devons maintenant configurer un moteur de stockage et une réplication MongoDB. Après cela, activez et démarrez mongoDB en tant que :
$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
$ mongo --eval "printjson(rs.initiate())"
Sortie :
Maintenant, démarrez et activez le service Rocket.Chat à l'aide de la commande suivante :
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Vérifiez l'état du service Rocket.Chat"
$ sudo systemctl status rocketchat
Sortie :
Installation de Nginx et configuration du proxy inverse
Pour configurer le proxy inverse nginx pour Rocket.Chat, installez nginx à l'aide de la commande suivante
$ sudo apt install nginx
Créez une configuration d'hôte virtuel nginx pour rocketchat.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
Collez maintenant le contenu suivant et enregistrez le fichier
upstream backend { server 127.0.0.1:3000; } server { listen 80; server_name your_rocketchat_domain_name; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; location / { proxy_pass http://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; } }
Vérifiez le fichier de configuration nginx
$ sudo nginx -t
Redémarrez et activez le service nginx
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
Accédez maintenant à votre domaine rocketchat en tant que
http://votre_domaine_rocketchat
Vous obtiendrez un assistant de configuration Web, complétez-le et commencez à utiliser Rocket.Chat
Nginx comme proxy inverse SSL
Nous avons configuré Rocket.Chat avec uniquement un proxy inverse HTTP. Pour configurer nginx en tant que proxy inverse SSL, vous aurez besoin de fichiers de certificat. Modifiez le fichier nginx vhost et collez le contenu suivant.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend { server 127.0.0.1:3000; } server { listen 443 ssl; Server_name your_rocketchat_domain_name; client_max_body_size 200M; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; ssl_certificate /etc/nginx/certificate.crt; ssl_certificate_key /etc/nginx/private.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://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-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
Remarque :
Générez ou achetez un certificat ssl et pointez le répertoire de votre fichier de certificat dans le paramètre de configuration suivant.
ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]
Vérifiez le fichier de configuration nginx
sudo nginx -t
Redémarrez le service nginx
sudo systemctl restart nginx
Accéder à Rocketchat
Une fois le proxy inverse configuré, vous pouvez accéder à votre Rocket.Chat en utilisant l'URL comme :
https://you_rocket_chat_domain
Vous obtiendrez l'assistant de configuration Web Rocket.Chat. Terminez la configuration et commencez à utiliser votre Rocket.Chat auto-hébergé.
Conclusion
Dans cet article, nous avons appris à installer et à configurer le chat Rocket auto-hébergé sur Ubuntu 20.04. J'ai également expliqué comment installer et configurer nginx pour le proxy inverse avec les certificats SSL chiffrés.