为 Rocket Chat 创建 Systemd 服务

要配置 Rocket Chat 服务器的自动启动,我们需要创建一个 systemd 单元。

使用 vim 编辑器创建 systemd 单元文件。

[root@rocket-chat-server server]# vi /lib/systemd/system/rocketchat.service

在此文件中添加以下指令。

[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[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?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target

启用并启动 Rocket Chat 服务。

# systemctl enable --now rocketchat.service
Created symlink /etc/systemd/system/multi-user.target.wants/rocketchat.service -> /usr/lib/systemd/system/rocketchat.service.

为 Rocket Chat 配置 Linux 防火墙

Node.js 使用默认端口 3000 。
因此,要访问 Rocket Chat Web 界面,我们需要在 Linux 防火墙中允许传入流量到此端口。

# firewall-cmd --permanent --add-port=3000/tcp
success
# firewall-cmd --reload
success

在 CentOS/RHEL 8 上安装 MongoDB 服务器

要安装 MongoDB 数据库服务器,我们需要在 Linux 操作系统中添加 MongoDB 官方 yum 存储库。

使用 vim 文本编辑器为 MongoDB yum 存储库创建一个 repo 文件。

# vi /etc/yum.repos.d/mongodb-org-4.2.repo

在此文件中添加以下指令。

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

为 MongoDB yum 存储库构建缓存。

# dnf makecache
CentOS-8 - AppStream                            4.4 kB/s | 4.3 kB     00:00
CentOS-8 - Base                                 182  B/s | 3.9 kB     00:21
CentOS-8 - Extras                               2.0 kB/s | 1.5 kB     00:00
MongoDB Repository                              9.4 kB/s |  12 kB     00:01
Metadata cache created.

已添加 MongoDB yum 存储库。
现在,我们可以通过执行 dnf 命令轻松地在 CentOS/RHEL 8 上安装 MongoDB 服务器。

# dnf install -y mongodb-org

根据 Rocket Chat 软件的要求,在 MongoDB 配置文件中配置以下设置。

# sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf

启用并启动 MongoDB 数据库服务。

# systemctl enable --now mongod.service

启动 MongoDB 副本集。

# mongo --eval "printjson(rs.initiate())"
MongoDB shell version v4.2.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("62a95226-85a3-4716-bf55-e98ed1510cec") }
MongoDB server version: 4.2.9
{
        "info2" : "no configuration specified. Using a default configuration for the set",
        "me" : "127.0.0.1:27017",
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1598207737, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1598207737, 1)
}
on it road .com

在 CentOS/RHEL 8 上安装 Rocket Chat 服务器

使用以下命令下载最新版本的 Rocket Chat 软件。

# curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   132  100   132    0     0    106      0  0:00:01  0:00:01 --:--:--   106
100  158M  100  158M    0     0  1056k      0  0:02:33  0:02:33 --:--:-- 1711k

将下载的 zip 文件解压缩到临时目录中。

# tar -xzf /tmp/rocket.chat.tgz -C /tmp

你可以使用 npm 命令在 Linux 上安装 Rocket Chat 服务器。

# cd /tmp/bundle/programs/server
# npm install
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
> fibers@4.0.3 install /tmp/bundle/programs/server/node_modules/fibers
> node build.js || nodejs build.js
`linux-x64-72-glibc` exists; testing
Binary is fine; exiting
npm WARN lifecycle meteor-dev-bundle@~install: cannot run in wd meteor-dev-bundle@ node npm-rebuild.js (wd=/tmp/bundle/programs/server)
added 146 packages from 122 contributors and audited 147 packages in 22.341s
2 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities

将 Rocket Chat 软件移动到 /opt 目录。

# mv /tmp/bundle /opt/Rocket.Chat

创建一个用户来拥有 Rocket Chat 软件和流程。

# useradd -M rocketchat

锁定 Rocketchat 用户,因此没有人可以使用它登录我们的 Linux 服务器。

# usermod -L rocketchat

将软件目录的所有权授予 Rocketchat 用户。

# chown -R rocketchat:rocketchat /opt/Rocket.Chat

访问 Rocket Chat 网页界面

在 Web 浏览器中打开 URL http://rocket-chat-server.onitroad.com:3000。

提供管理员信息,然后单击继续。

我们需要在此页面上提供组织信息。
单击继续。

提供服务器信息,然后单击继续。

在线注册 Rocket Chat 服务器或者保持独立。
单击继续。

Rocket Chat 工作场所现在可以使用了。
点击前往工作场所。

我们现在位于 Rocket Chat 网页界面的主页。
单击左上角工具列中的管理。

在 CentOS/RHEL 8 上安装 Rocket Chat 服务器

Rocket Chat 是一个免费的开源网络聊天服务器,使用 JavaScript 开发,使用 Meteor 全栈框架。
在本文中,我们将学习如何在 CentOS/RHEL 8 上安装 Rocket Chat 服务器。

在 CentOS/RHEL 8 上安装 Node.js 服务器

Rocket Chat 需要 Node.js 服务器来运行它的服务。
因此,我们需要在 Linux 服务器上安装 Node.js。

Node.js 需要以下软件包进行编译和生成可执行文件。
因此,我们使用 dnf 命令安装这些软件包。

# dnf install -y gcc-c++ make

在安装 Node.js 之前,我们需要在我们的 Linux 服务器中添加 Node.js 官方 yum 存储库。

使用以下命令在 Linux 服务器中安装 Node.js yum 存储库。

# curl -sL https://rpm.nodesource.com/setup_12.x | bash

Node.js yum 存储库已添加到 Linux 操作系统中。
现在,我们可以使用 dnf 命令轻松安装 Node.js。

# dnf install -y nodejs

在 CentOS/RHEL 8 上安装 GraphicsMagick

GraphicsMagick 是一组强大的工具和库,用于读取、写入和操作任何更流行的图像格式的图像。

Rocket Chat 需要 GraphicsMagick。
GraphicsMagick 在标准 yum 存储库中不可用,因此,我们需要安装 EPEL (Extra Packages for Enterprise Linux) yum 存储库。

# dnf install -y epel-release

现在,我们可以使用 dnf 命令安装 GraphicsMagick。

# dnf install -y GraphicsMagick

使用 npm(节点包管理器)命令安装继承和 n 个包。

# npm install -g inherits n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
+ inherits@2.0.4
+ n@6.7.0
added 2 packages from 4 contributors in 2.858s

根据 Rocket Chat 服务器的要求安装 Node.js 12.14.0。

# n 12.14.0
  installing : node-v12.14.0
       mkdir : /usr/local/n/versions/node/12.14.0
       fetch : https://nodejs.org/dist/v12.14.0/node-v12.14.0-linux-x64.tar.xz
   installed : v12.14.0 (with npm 6.13.4)
Note: the node command changed location and the old location may be remembered in your current shell.
         old : /usr/bin/node
         new : /usr/local/bin/node
To reset the command location hash either start a new shell, or execute PATH="$PATH"
日期:2020-09-17 00:16:41 来源:oir作者:oir