Rocket.Chat – 用于Linux的免费、开源的企业团队聊天

Rocket.Chat 是一个免费、开源、可扩展、高度可定制和安全的平台,让您可以与团队进行沟通和协作,共享文件,并实时聊天。它跨平台运行在 Linux、Windows、macOS、Android 和 iOS 移动操作系统上。

它类似于 Slack,具有实时聊天、免费音频和视频会议、频道、访客访问、屏幕共享和文件共享等功能。为了确保安全通信,它支持 LDAP 组同步、双因素身份验证(2FA)、端到端加密、单点登录以及多个 OAuth 提供者。

重要的是,作为完全开源的,您可以访问其源代码来完全定制、扩展或添加新功能,以满足您团队或业务的需求。

在本文中,您将学习如何在 Linux 系统上安装和配置 Rocket.Chat 服务器和客户端。

第一步:在 Linux 中安装 Snaps

1. 使用 Snaps 安装 Rocket.Chat 的最简单方法 – 大多数现代 Linux 发行版都支持 Snaps,并且它们是安全的,因为它们在受限制的安全沙箱中运行。此外,使用 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 上运行并侦听。打开 Web 浏览器并输入以下地址以在系统上设置 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:配置

9.反向代理,例如NGINXApache,允许您配置Rocket.Chat应用程序通过域或子域(例如http://chat.tecmint.com)访问,而不是输入服务器地址和应用程序端口(例如http://10.42.0.247:3000)。

此外,Rocket.Chat是一个中间层应用服务器,不处理SSL/TLS。反向代理还允许您配置SSL/TLS证书以启用HTTPS。

为Rocket.Chat启用Nginx反向代理

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. 接下来,在`/etc/nginx/conf.d/`目录下为Rocket.Chat应用程序创建一个虚拟服务器块文件,例如。

$ 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. 现在一切配置正确,请打开您的浏览器并输入以下地址。代理服务器中配置的域名应该可以访问

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

20. 下一个关键步骤是为您的聊天服务添加安全性和隐私保护,即使用HTTPS证书。对于生产环境,我们建议使用Let’s Encrypt,它是免费的并且被大多数现代网页浏览器所信任。

请注意,Let’s Encrypt是自动化的:您可以使用certbot,一个免费的开源工具,在主流Linux发行版和网络服务器中自动获取和安装,或者只是获取并手动安装Let’s Encrypt证书。

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