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

Install necessary dependency packages

Update package list and configure apt to install the official MongoDB packages with the following repository file:
1
sudo apt-get -y update
Copied!
1
sudo apt-get install -y dirmngr gnupg && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Copied!
1
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Copied!
Configure Node.js to be installed via package manager:
1
sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Copied!
Install build tools, MongoDB, nodejs, fontconfig and graphicsmagick:
1
sudo apt-get install -y build-essential mongodb-org nodejs fontconfig 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 (/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: wiredTiger/" /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.
Last modified 8mo ago