Rocket.Chat – 適用於 Linux 的免費、開源、企業團隊聊天

Rocket.Chat 是一個免費、開源、可擴展、高度可定制和安全的平台,可讓您與團隊通訊、協作、共享文件並即時聊天。它跨平台運行於 Linux、Windows、macOS、Android 和 iOS 行動操作系統。

它類似於 Slack,具備即時聊天、免費音頻和視頻會議、頻道、訪客訪問、屏幕共享和文件共享等功能。為確保安全通信,它支持 LDAP 群組同步、雙因素身份驗證(2FA)、端到端加密、單點登錄以及多個 Oauth 提供商。

重要的是,作為完全開源的,您可以訪問其源代碼以完全定制、擴展或添加新功能,以滿足您的團隊或業務需求。

在本文中,您將學習如何在 Linux 系統上安裝和配置 Rocket.Chat 服務器和客戶端。

步驟 1:在 Linux 中安裝 Snaps

1. 通過使用 Snaps 是安裝 Rocket.Chat 的最簡單方法——它們受到大多數現代 Linux 發行版的支持,它們安全,因為它們在受限制的安全沙箱下運行。此外,使用 Snaps,您還可以在包的新版本可用時自動更新。

首先,確保您的系統已安裝snapd套件,否則請按照以下方式使用您的默認套件管理器進行安裝。

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

2. 安裝完成後,您需要啟用管理主要snap通信插槽的systemd單元,如下所示。請注意,此命令將啟動插槽並使其在系統啟動時啟動。在Ubuntu上,此操作應在套件安裝完成後自動執行。

$ sudo systemctl enable --now snapd.socket

此外,您可以通過在/var/lib/snapd/snap/snap之間創建符號鏈接來啟用經典的snap支持。

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

第二步:在Linux中安裝Rocket.Chat

3. 現在您已經安裝了Snapd,運行以下命令來安裝rocketchat-server
$ sudo snap install rocketchat-server

4. 當snap安裝完成後,您的rocket.chat服務器將默認運行並監聽端口3000。打開網絡瀏覽器並輸入以下地址以在系統上設置rocket.chat

http://SERVER_IP:3000

5. 在設置嚮導加載後,提供管理用戶的全名、用戶名、組織郵件和密碼。

Enter Your Admin Info

6. 接下來,提供組織信息(組織類型、名稱、行業、規模、國家和網站),然後點擊繼續。

Enter Organization Info

7. 接下來,提供服務器信息(站點名稱、默認值、服務器類型,並啟用2FA與否)。然後點擊繼續。

Enter Server Info

8. 在下一頁註冊伺服器。這裡有兩個選項,預設是使用Rocket.Chat提供的預配置閘道和代理(這是推薦選項)。

或者,您也可以選擇保持獨立,並與服務提供商建立帳戶,更新預配置設置,以及使用您的私人證書重新編譯移動應用程序。然後點擊繼續。

Register Rocket.Chat Server

設置完成後,您的工作區就準備好了。點擊前往您的工作區

Use Work Space
Rocket.Chat Home Workspace

步驟3:為Rocket.Chat配置反向代理

9.NGINXApache等反向代理允許您配置Rocket.Chat應用程序,通過域名或子域名(例如http://chat.tecmint.com)訪問,而不是輸入伺服器地址和應用程序端口(例如http://10.42.0.247:3000)。

此外,Rocket.Chat是一個中間層應用程序服務器,不處理SSL/TLS。反向代理還允許您配置SSL/TLS證書以啟用HTTPS。

啟用Nginx反向代理為Rocket.Chat

10. 如果您的系統還未安裝NGINX包,首先安裝它。

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

11. 包安裝完成後,立即啟動Nginx服務,並設置為系統啟動時自動啟動,並檢查其狀態以確保它正在運行。

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

12. 接下來,在 Rocket.Chat 應用程式的 /etc/nginx/conf.d/ 目錄下建立一個虛擬伺服器區塊檔案,例如。

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

然後將以下配置複製並粘貼到該檔案中(將 chat.tecmint.com 替換為您有效的子域名或域名)。

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;
    }
}

保存並關閉檔案。

13. 然後檢查 NGINX 配置是否存在任何語法問題。 如果沒問題,重新啟動 Nginx 服務以應用最近的更改。

$ sudo nginx -t
$ sudo systemctl restart nginx

啟用 Apache 反向代理以進行 Rocket.Chat

14. 如果尚未安裝,請先安裝 Apache2 套件。

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

15. 接下來,啟動並啟用 apache 服務,並檢查是否正在運行。

----- 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. 接下來,在 /etc/apache2/sites-available//etc/httpd/conf.d/ 目錄下為 Rocket.Chat 應用程式創建一個虛擬主機檔案,例如。

----- 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. 將以下配置複製並粘貼到其中,將 chat.tecmint.com 替換為您的有效域名。

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

保存並關閉檔案。

18. 在 Ubuntu 和 Debian 上啟用所需的 apache2 模組並重新啟動服務以應用最近的更改。

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

在 CentOS/RHEL 和 Fedora 上,只需重新啟動 apache 服務。

# systemctl restart httpd

19.現在一切設定正確,打開您的瀏覽器並輸入以下地址。使用代理伺服器中配置的您的域名,應該可以訪問Rocket.Chat應用程式。

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

20.下一個關鍵步驟是為您的聊天服務添加安全性和隱私性好處的HTTPS證書。對於生產環境,我們建議使用Let’s Encrypt,它是免費的並且受到大多數現代網絡瀏覽器的信任。

請注意,Let’s Encrypt是自動的:您可以使用certbot,一個免費的開源工具來自動獲取和安裝,或者僅僅獲取並手動安裝Let’s Encrypt證書在主流的Linux發行版和Web服務器中。

第4步:在桌面安裝Rocket.Chat客戶端

21.最後但同樣重要的是,您可以從Rocket.Chat項目網站下載並安裝Linux、Mac或Windows的Rocket.Chat桌面應用程式。它還提供了Android和iOS的移動應用程式。

要在Linux上安裝桌面應用程式,您可以根據您的Linux發行版下載deb(x64)或rpm(x64)包。

$ 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.然後按照所示使用 dpkgrpm 軟件包管理器 安裝該套件。

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

23.安裝套件後,於 系統菜單 中搜尋 rocket.chat 並啟動它。 加載後,請輸入您的服務器 URL 以連接,如下圖所示。

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