如何在CentOS 8上安装Rocket.Chat

Rocket.Chat是使用Meteor构建的免费开源聊天和消息传递应用程序。 它是Slack的替代产品,可让您与其他成员聊天,进行视频和音频通话,创建频道和私人群组,共享文件和文件夹等等。 它是自托管的,可帮助您的团队在台式机和移动设备上交流和共享想法。

在本教程中,我们将向您展示如何在Nentx上将Rocket.Chat部署为CentOS 8上的反向代理。

先决条件

  • CentOS 8 VPS。
  • 访问root用户帐户(或访问具有root特权的管理员帐户)

步骤1:登录到服务器并更新服务器操作系统软件包

首先,以root用户身份通过​​SSH登录到CentOS 8服务器:

ssh [email protected]_Address -p Port_number

您将需要用服务器各自的IP地址和SSH端口号替换“ IP_Address”和“ Port_number”。 此外,如有必要,将“ root”替换为管理员帐户的用户名。

在开始之前,您必须确保服务器上安装的所有CentOS软件包都是最新的。 您可以通过运行以下命令来执行此操作:

dnf update -y

步骤2:安装必需的软件包

首先,您需要安装一些在系统中安装Rocket.Chat所需的软件包。

首先,使用以下命令安装EPEL repo:

dnf install epel-release -y

安装EPEL repo后,请使用以下命令安装Nginx Web服务器和开发工具:

dnf install nginx curl GraphicsMagick gcc-c++ -y
dnf groupinstall 'Development Tools'

安装所有软件包后,启动Nginx服务并启用它以在系统重新引导时启动:

systemctl start nginx
systemctl enable nginx

步骤3:安装Node.js

接下来,您将需要在系统中安装Node.js。 默认情况下,最新版本的Node.js在CentOS 8默认存储库中不可用。 因此,您将需要在系统中启用Node.js模块。 您可以使用以下命令启用Node.js版本12模块:

dnf module enable nodejs:12

接下来,使用以下命令安装Node.js:

dnf install nodejs -y

安装Node.js之后,请使用以下命令验证Node.js的安装版本:

node --version

您应该获得以下输出:

v12.18.4

步骤4:安装和配置MongoDB

Rocket.Chat使用MongoDB作为数据库后端。 因此,您需要将其安装在系统中。

首先,使用以下命令创建一个MongoDB存储库:

nano /etc/yum.repos.d/mongodb-org.repo

添加以下行:

[mongodb-org-3.6]

名称= MongoDB存储库baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck = 1 enabled = 1 gpgkey = https://www.mongodb.org/static /pgp/server-3.6.asc

保存并关闭文件,然后使用以下命令安装MongoDB服务器:

dnf install mongodb-org -y

安装后,请启动MongoDB服务,并使用以下命令使其在系统重新引导时启动:

systemctl start mongod
systemctl enable mongod

接下来,您将需要在MongoDB中定义副本集。 您可以使用以下命令进行定义:

nano /etc/mongod.conf

添加以下行:

replication:
  replSetName: "myreplica01"

保存并关闭文件,然后重新启动MongoDB服务以应用更改:

systemctl restart mongod

接下来,登录到MongoDB shell,并使用以下命令启动副本集:

mongo

> rs.initiate()

您应该获得以下输出:

{
    "info2" : "no configuration specified. Using a default configuration for the set",
    "me" : "127.0.0.1:27017",
    "ok" : 1,
    "operationTime" : Timestamp(1604905164, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1604905164, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}

接下来,使用以下命令从MongoDB Shell退出:

myreplica01:SECONDARY> exit

步骤5:安装Rocket.Chat

首先,您需要创建一个单独的用户来运行Rocket.Chat。 您可以使用以下命令创建它:

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

接下来,使用以下命令将火箭用户添加到Nginx组:

usermod -a -G rocket nginx

接下来,使用以下命令为/ opt / rocket目录授予适当的权限:

chmod 750 /opt/rocket

接下来,将用户切换为火箭,并使用以下命令下载最新版本的Rocket.Chat:

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

接下来,使用以下命令提取下载的文件:

tar zxf rocket.chat.tgz

接下来,将提取的目录移动到Rocket.Chat:

mv bundle Rocket.Chat

接下来,将目录更改为Rocket.Chat服务器,并使用以下命令安装所需的模块:

cd Rocket.Chat/programs/server
npm install

接下来,使用以下命令从火箭用户退出:

exit

步骤6:为Rocket.Chat创建Systemd服务文件

接下来,您将需要创建一个systemd服务文件来管理Rocket.Chat服务。 您可以使用以下命令创建它:

nano /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=http://chat.example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

保存并关闭文件,然后使用以下命令重新加载systemd守护程序:

systemctl daemon-reload

接下来,启动Rocket.Chat服务,并使用以下命令使其在系统重启时启动:

systemctl start rocketchat
systemctl enable rocketchat

现在,您可以使用以下命令来验证Rocket.Chat的状态:

systemctl status rocketchat

您应该获得以下输出:

● rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-11-09 02:01:10 EST; 28s ago
 Main PID: 65031 (node)
    Tasks: 11 (limit: 25014)
   Memory: 573.6M
   CGroup: /system.slice/rocketchat.service
           └─65031 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |      MongoDB Version: 3.6.20                         |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |       MongoDB Engine: wiredTiger                     |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |             Platform: linux                          |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |         Process Port: 3000                           |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |             Site URL: http://chat.example.com:3000/  |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |     ReplicaSet OpLog: Enabled                        |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |          Commit Hash: e37d7ba8ed                     |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |        Commit Branch: HEAD                           |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ |                                                      |
Nov 09 02:01:33 centos8 rocketchat[65031]: ➔ +------------------------------------------------------+

步骤7:将Nginx配置为反向代理

此时,Rocket.Chat已启动并在端口3000上侦听。接下来,您需要将Nginx配置为反向代理,以使用端口80访问Rocket.Chat。

首先,使用以下命令创建Nginx虚拟主机配置文件:

nano /etc/nginx/conf.d/rocket.conf

添加以下行:

upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

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

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

保存并关闭文件,然后重新启动Nginx服务以应用更改:

systemctl restart nginx

步骤8:配置防火墙

接下来,您将需要允许端口80通过Firewalld。 您可以使用以下命令允许它:

firewall-cmd --zone=public --add-port=80/tcp --permanent

接下来,重新加载firewalld以应用更改:

firewall-cmd --reload

第9步:访问Rocket.Chat

现在,打开您的Web浏览器,并使用URL http://chat.example.com访问Rocket.Chat。 您应该看到以下屏幕:

如何在centos上安装rocket.chat

提供您的管理员信息,然后点击 继续 按钮。 您应该看到以下屏幕:

如何在centos上安装rocket.chat的指南

提供您的组织信息,然后单击 继续 按钮。

在下一页上,提供您的服务器信息,然后单击 继续 按钮:

在centos上如何安装rocket.chat的简易指南

现在,注册您的服务器,然后单击 继续 按钮。 您应该看到以下屏幕:

如何在centos指南上安装rocket.chat

点击 继续 按钮。 您应该看到以下屏幕:

在centos上安装rocket.chat的指南

点击 转到您的工作区。 您应该在以下屏幕中看到Rocket.Chat仪表板:

在centos上安装rocket.chat的步骤

当然,如果您使用我们的托管产品之一,则不必在CentOS 8上安装Rocket.Chat。

CentOS主机计划,在这种情况下,您可以简单地要求我们的专业Linux管理员为您在CentOS 8上安装Rocket.Chat。 它们全天候24×7可用,将立即处理您的要求。

PS。 如果您喜欢这篇有关如何在CentOS 8上安装Rocket.Chat的文章,请使用左侧的按钮与社交网络上的朋友分享,或者在下面留下您的答复。 谢谢。

Sidebar