Rocket.Chat in CentOS
This installation guide was tested in the following environment:
  • Rocket.Chat 3.9.0
  • OS: CentOS 7.6
  • Mongodb 4.0.9
  • NodeJS 12.18.4

Install necessary dependency packages

Update package list and configure yum to install the official MongoDB packages with the following yum repository file:
1
sudo yum -y check-update
Copied!
1
cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
2
[mongodb-org-4.0]
3
name=MongoDB Repository
4
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
5
gpgcheck=1
6
enabled=1
7
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
8
EOF
Copied!
Configure Node.js to be installed via package manager:
1
sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
Copied!
Install build tools, MongoDB, nodejs and graphicsmagick:
1
sudo yum install -y gcc-c++ make mongodb-org nodejs
Copied!
1
sudo yum install -y epel-release && sudo yum install -y GraphicsMagick
Copied!
Using npm install inherits and n, and the node version required by Rocket.Chat:
1
sudo npm install -g inherits n && sudo n 12.18.4
Copied!

Install Rocket.Chat

Download the latest Rocket.Chat version:
1
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
Copied!
1
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Copied!
Install (this guide uses /opt but feel free to choose a different directory):
1
cd /tmp/bundle/programs/server && npm install
Copied!
1
sudo mv /tmp/bundle /opt/Rocket.Chat
Copied!

Configure the Rocket.Chat service

Add the rocketchat user, set the right permissions on the Rocket.Chat folder and create the Rocket.Chat service file:
1
sudo useradd -M rocketchat && sudo usermod -L rocketchat
Copied!
1
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Copied!
1
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
2
[Unit]
3
Description=The Rocket.Chat server
4
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
5
[Service]
6
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
7
StandardOutput=syslog
8
StandardError=syslog
9
SyslogIdentifier=rocketchat
10
User=rocketchat
11
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
12
[Install]
13
WantedBy=multi-user.target
14
EOF
Copied!
Open the Rocket.Chat service file just created (/usr/lib/systemd/system/rocketchat.service) using sudo and your favourite text editor, and change the ROOT_URL environmental variable to reflect the URL you want to use for accessing the server (optionally change MONGO_URL, MONGO_OPLOG_URL and PORT):
1
MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
2
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
3
ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
4
PORT=3000
Copied!
Setup storage engine and replication for MongoDB (mandatory for versions > 1), and enable and start MongoDB and Rocket.Chat:
1
sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
Copied!
1
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
Copied!
1
sudo systemctl enable mongod && sudo systemctl start mongod
Copied!
1
mongo --eval "printjson(rs.initiate())"
Copied!
1
sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Copied!

Optional configurations

Configure firewall rule Configure a HTTP reverse proxy to access Rocket.Chat server [Configure mongo access control] [Configure production values for mongodb]

Configure your Rocket.Chat server

Open a web browser and access the configured ROOT_URL (http://your-host-name.com-as-accessed-from-internet:3000), follow the configuration steps to set an admin account and your organization and server info.

ZLIB version problem

Some users had experienced problems starting rocketchat server in CentOS because their zlib version is not compatible with rocket.chat.
If you find an error message similar to the following in the logs:
1
Exception in callback of async function: Error: /lib64/libz.so.1: version `ZLIB_1.2.9' not found
Copied!
Add this environmental variable in the Rocket.Chat service file (/usr/lib/systemd/system/rocketchat.service):
Environment=LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so

Troubleshooting

502 Bad Gateway
If your installing Rocket.Chat on CentOS or RHEL you may encounter a 502 Bad Gateway error after setting up setup a reverse proxy with Nginx. To fix this you need to enable loopback for your upstream in SELinux.
1
setsebool -P httpd_can_network_connect 1
Copied!
Last modified 8mo ago