将Rocket.Chat安装到RedHat的本地服务器上

首先

由于Rocket.Chat需要安装在本地服务器(离线状态的互联网连接),所以安装过程有点繁琐。以下是我总结的步骤。
* 注意:此过程不使用Docker。

关于Rocket.Chat的信息

类似于Slack的开源通信工具。
只要构建服务器就可以在公司内网使用。
然而,由于需要独立安装依赖工具和库,所以在离线环境下,环境配置稍显麻烦。

环境

操作系统

    Red Hat Enterprise Linux Server release 7.6

引入软件

    • Rocket.Chat 3.0.0

Mongodb 4.0.9
NodeJS 12.14.0

做过的事情 (zuò guò de shì

基本上,按照官方網頁上的步驟進行安裝。
將透過yum或npm安裝的相依檔案和函式庫透過連接至網絡的設備就地轉換為本地存儲庫,以適應本地環境。

在连接到互联网的设备上进行工作

请按照以下步骤将所需文件放置在/tmp/RC目录下。

使用yum下载所需的文件

下载所需的软件包以创建本地存储库。

$ sudo yum install yum-plugin-downloadonly

$ sudo yum update --downloadonly --downloaddir=/tmp/RC/yum -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum nodejs -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum gcc-c++ -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum GraphicsMagick -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum mongodb-org-server -y
$ sudo yum install --downloadonly --downloaddir=/tmp/RC/yum mongodb-org -y

创建本地代码仓库。

$ sudo yum install createrepo

$ createrepo --update /tmp/RC/yum

這樣本地倉庫的準備工作就完成了。

获取nodeJS 12.14.0

使用curl命令获取文件。

$ curl -L https://nodejs.org/download/release/v12.14.0/node-v12.14.0-linux-x64.tar.xz -o /tmp/RC/node-v12.14.0-linux-x64.tar.xz

这个不用特别去碰。

获取Rocket.Chat

使用curl命令获取文件。

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/RC/rocket.chat.tgz

解压文件并包含所需的软件包后再压缩。

$ tar -xzf /tmp/RC/rocket.chat.tgz -C /tmp/RC
$ yum install nodejs -y
$ cd /tmp/RC/bundle/programs/server
$ npm install
$ npm install inherits n
$ cd /tmp/RC && tar -zcvf rocket.chat.tgz bundle --remove-file

所有文件已經準備好。
將位於 “/tmp/RC” 以下的文件全部搬移到本地環境。

在本地环境中的工作

在连接到互联网的设备上,将放置在”/tmp/RC”目录下的文件全部携带到本地环境,并进行安装。
将携带的文件也放置在”/tmp/RC”目录下进行配置。

从本地仓库进行安装

添加对仓库的引用。

$ sudo mkdir etc/yum.repos.d/bk && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bk
$ sudo cat << EOF | sudo tee -a /etc/yum.repos.d/myrepo.repo
[local]
name=localrepo
baseurl=file:///tmp/RC/yum
gpgcheck=0
enabled=1
EOF

从本地存储库安装所需的组件。

$ sudo yum update -y
$ sudo yum install nodejs -y
$ sudo yum install gcc-c++ -y
$ sudo yum install GraphicsMagick -y
$ sudo yum install mongodb-org-server -y
$ sudo yum install mongodb-org -y

从本地存储库安装已完成。

NodeJS的替代方案

我需要获取在 yum 上安装的 NodeJS 版本,但我想要的版本不可用,因此要替换整个文件。

$ xz -dv  node-v12.14.0-linux-x64.tar.xz
$ tar xfv node-v12.14.0-linux-x64.tar
$ sudo \cp -pRf /tmp/RC/node-v12.14.0-linux-x64/* /usr/local
$ PATH="$PATH"

请确认版本。
确认为12.14.0版本。

$ node -v

Rocket.Chat的设置

使用以下命令解压并将带来的Rocket.Chat放置在”/opt”目录下。

$ tar -xzf /tmp/RC/rocket.chat.tgz -C /tmp/RC
$ sudo mv /tmp/RC/bundle /opt/Rocket.Chat

$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

启动MongoDB

使用以下命令启动MongoDB。

$ sudo sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
mongo --eval "printjson(rs.initiate())"

启动Rocket.Chat

为了启动Rocket.Chat,创建一个服务文件。

$ cat << EOF |sudo tee -a /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
EOF

使用以下命令启动Rocket.Chat。

$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat

检查Rocket.Chat的状态。

$ sudo systemctl status rocketchat

顺便打开3000端口。

sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
sudo firewall-cmd --reload

结果 (jié guǒ)

在本地服务器上,Rocket.Chat可以运行。

bannerAds