为 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) }
在 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 网页界面的主页。
单击左上角工具列中的管理。
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"