Rocket.Chat – Chat di team gratuita, open source, per le aziende su Linux

Rocket.Chat è una piattaforma gratuita, open-source, scalabile, altamente personalizzabile e sicura che ti permette di comunicare e collaborare con il tuo team, condividere file e chattare in tempo reale. È multipiattaforma e funziona su sistemi operativi Linux, Windows, macOS, Android e iOS per dispositivi mobili.

È simile a Slack e offre chat live, conferenze audio e video gratuite, canali, accesso ospite, condivisione dello schermo e condivisione di file. Per garantire una comunicazione sicura, supporta la sincronizzazione di gruppi LDAP, l’autenticazione a due fattori (2FA), la crittografia end-to-end, l’accesso Single Sign-On e diversi provider OAuth.

È importante notare che essendo completamente open-source, è possibile accedere al suo codice sorgente per personalizzarlo completamente, estenderlo o aggiungere nuove funzionalità per soddisfare i requisiti del proprio team o business.

In questo articolo, imparerai come installare e configurare il server e il client di Rocket.Chat su un sistema Linux.

Passaggio 1: Installazione di Snaps in Linux

1. Il modo più semplice per installare Rocket.Chat è utilizzando Snaps – supportati dalla maggior parte, se non tutti, le moderne distribuzioni Linux e sono sicuri perché eseguono confinati sotto una sandbox di sicurezza restrittiva. Inoltre, con snaps, è anche possibile l’aggiornamento automatico quando è disponibile una nuova versione di un pacchetto.

Prima, assicurati di avere il pacchetto snapd installato sul tuo sistema, altrimenti installalo usando il tuo gestore di pacchetti predefinito come mostrato.

$ sudo apt install snapd		#Ubuntu and Debian
$ sudo dnf install snapd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install snapd		#CentOS/RHEL 7

2. Quando l’installazione è completa, devi abilitare l’unità systemd che gestisce il socket principale di comunicazione snap come segue. Nota che questo comando avvierà il socket e lo abiliterà all’avvio del sistema. Su Ubuntu, questo dovrebbe essere fatto automaticamente dopo che l’installazione del pacchetto è completa.

$ sudo systemctl enable --now snapd.socket

Inoltre, puoi abilitare il supporto snap classico creando un collegamento simbolico tra /var/lib/snapd/snap e /snap.

 
$ sudo ln -s /var/lib/snapd/snap /snap

Passaggio 2: Installazione di Rocket.Chat in Linux

3. Ora che hai installato Snapd, esegui il seguente comando per installare il rocketchat-server.
$ sudo snap install rocketchat-server

4. Quando l’installazione snap è completa, il tuo server rocket.chat inizierà a funzionare e ad ascoltare sulla porta 3000 per impostazione predefinita. Apri un browser web e inserisci il seguente indirizzo per configurare rocket.chat sul sistema.

http://SERVER_IP:3000

5. Dopo il caricamento della procedura guidata di configurazione, fornisci il nome completo dell’utente amministrativo, il nome utente, l’email organizzativa e la password.

Enter Your Admin Info

6. Successivamente, fornisci le informazioni organizzative (tipo di organizzazione, nome, settore, dimensione, paese e sito web), quindi fai clic su Continua.

Enter Organization Info

7. Successivamente, fornisci le informazioni sul server (nome del sito, tipo di server predefinito e abilita anche 2FA o meno). Quindi fai clic su Continua.

Enter Server Info

8. Nella pagina successiva, registra il server. Ci sono due opzioni qui, quella predefinita è utilizzare i gateway e i proxy preconfigurati forniti da Rocket.Chat (questa è l’opzione consigliata).

In alternativa, puoi scegliere di mantenere autonomo e creare account con fornitori di servizi, aggiornare le impostazioni preconfigurate e ricompilare anche le app mobili con i tuoi certificati privati. E clicca su Continua.

Register Rocket.Chat Server

La configurazione è completa e il tuo spazio di lavoro è pronto. Clicca su Vai al tuo spazio di lavoro.

Use Work Space
Rocket.Chat Home Workspace

Passaggio 3: Configurazione del proxy inverso per Rocket.Chat

9. Un proxy inverso come NGINX o Apache ti consente di configurare l’applicazione Rocket.Chat in modo che sia accessibile tramite un dominio o un sottodominio (ad esempio http://chat.tecmint.com) anziché digitare l’indirizzo del server e la porta dell’applicazione (ad esempio http://10.42.0.247:3000).

Inoltre, Rocket.Chat è un server di applicazioni di livello intermedio che non gestisce SSL/TLS. Un proxy inverso consente anche di configurare certificati SSL/TLS per abilitare HTTPS.

Abilita il proxy inverso Nginx per Rocket.Chat

10. Innanzitutto, installa il pacchetto NGINX se non è ancora installato nel tuo sistema.

$ sudo apt apt install nginx		#Ubuntu/Debian 
$ sudo dnf install nginx		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install nginx		#CentOS/RHEL 7

11. Una volta completata l’installazione del pacchetto, avvia il servizio Nginx, per ora, abilitalo per l’avvio automatico al boot del sistema e controlla il suo stato per assicurarti che sia in esecuzione.

$ sudo systemctl enable --now nginx
$ sudo systemctl status nginx

12. Successivamente, crea un file di blocco del server virtuale per l’applicazione Rocket.Chat sotto la directory /etc/nginx/conf.d/, ad esempio.

$ sudo vim /etc/nginx/conf.d/chat.tecmint.com.conf

Quindi copia e incolla la seguente configurazione nel file (sostituisci chat.tecmint.com con il tuo sottodominio o dominio valido).

upstream backend {
    server 127.0.0.1:3000;
}

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

    # You can increase the limit if you need to.
    client_max_body_size 200M;

    error_log /var/log/nginx/chat.tecmint.com.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-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;
    }
}

Salva il file e chiudilo.

13. Successivamente, controlla la configurazione di NGINX per eventuali problemi di sintassi. Se è OK, riavvia il servizio Nginx per applicare le modifiche recenti.

$ sudo nginx -t
$ sudo systemctl restart nginx

Abilita il proxy inverso di Apache per Rocket.Chat

14. Inizia installando il pacchetto Apache2 se non è ancora installato nel tuo sistema.

$ sudo apt install apache2		#Ubuntu/Debian 
$ sudo dnf install httpd		#Fedora 22+/CentOS/RHEL 8
$ sudo yum install httpd		#CentOS/RHEL 7

15. Successivamente, avvia ed abilita il servizio apache e controlla se è in esecuzione come segue.

----- On Ubuntu/Debian -----
$ sudo systemctl enable --now apache2 	
$ sudo systemctl status apache2

----- On CentsOS/RHEL 7/8 ----- 
$ sudo systemctl enable --now httpd
$ sudo systemctl status httpd

16. In seguito, crea un file di host virtuale per l’applicazione Rocket.Chat sotto la directory /etc/apache2/sites-available/ o /etc/httpd/conf.d/, ad esempio.

----- On Ubuntu/Debian -----
$ sudo vim /etc/apache2/sites-available/chat.tecmint.com.conf

----- On CentsOS/RHEL 7/8 ----- 
$ sudo vim /etc/httpd/conf.d/chat.tecmint.com.conf

17. Copia e incolla la seguente configurazione al suo interno, sostituendo chat.tecmint.com con il tuo dominio valido.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName chat.tecmint.com

    LogLevel info
    ErrorLog /var/log/chat.tecmint.com_error.log
    TransferLog /var/log/chat.tecmint.com_access.log

    <Location />
        Require all granted
    </Location>

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

    ProxyPassReverse /          http://localhost:3000/
</VirtualHost>

Salva il file e chiudilo.

18. Su Ubuntu e Debian, abilita i moduli apache2 necessari e riavvia il servizio per applicare le modifiche recenti.

$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

Su CentOS/RHEL e Fedora, riavvia semplicemente il servizio apache.

# systemctl restart httpd

19. Ora che tutto è configurato correttamente, apri il tuo browser e digita l’indirizzo seguente. L’applicazione Rocket.Chat dovrebbe essere accessibile utilizzando il tuo dominio configurato nel server proxy.

http://chat.tecmint.com
Rocket.Chat Login Screen

20. Il prossimo passo cruciale è aggiungere i vantaggi della sicurezza e della privacy di un certificato HTTPS al tuo servizio di chat. Per un ambiente di produzione, consigliamo di utilizzare Let’s Encrypt, che è gratuito e affidabile per la maggior parte dei moderni browser web.

Nota che Let’s Encrypt è automatizzato: puoi utilizzare certbot, un tool gratuito open-source per ottenere e installare automaticamente o semplicemente ottenere e installare manualmente i certificati Let’s Encrypt nelle distribuzioni Linux e nei server web mainstream.

Passaggio 4: Installazione dei client di Rocket.Chat su Desktop

21. Infine, puoi scaricare ed installare un’applicazione desktop Rocket.Chat per Linux, Mac o Windows dal sito web del progetto Rocket.Chat. Fornisce inoltre app per dispositivi mobili per Android e iOS.

Per installare l’applicazione desktop su Linux, puoi scaricare un pacchetto deb (x64) o rpm(x64) a seconda della tua distribuzione Linux.

$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat_2.17.7_amd64.deb
OR
$ wget -c https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/2.17.7/rocketchat-2.17.7.x86_64.rpm

22. Quindi installa il pacchetto utilizzando il gestore di pacchetti dpkg o rpm come mostrato.

$ sudo dpkg -i rocketchat_2.17.7_amd64.deb      #Ubuntu/Debian
$ sudo rpm -i rocketchat-2.17.7.x86_64.rpm      #CentOS/RedHat

23. Una volta completata l’installazione del pacchetto, cerca rocket.chat nel Menu di Sistema e avvialo. Dopo il caricamento, inserisci l’URL del tuo server per connetterti ad esso come mostrato nello screenshot seguente.

Source:
https://www.tecmint.com/rocket-chat-open-source-team-chat-for-linux/