This installation guide was tested in the following environment:
- Rocket.Chat 3.5.1
- OS: Kali Rolling 2020.2
- Mongodb 4.0.19
- NodeJS 12.14.0
As Kali is a distribution based on Debian the installation process is pretty the same, only adding some MongoDB dependencies installation.
Update package list and configure apt to install the official MongoDB packages with the following repository file:
sudo apt-get -y updatesudo apt-get install -y dirmngr gnupg && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.listConfigure Node.js to be installed via package manager:
sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -Install build tools, MongoDB and dependencies (libcurl3 and mongoDB server), nodejs and graphicsmagick:
sudo apt-get install -y build-essential libcurl3 mongodb-org-server mongodb-org nodejs graphicsmagickUsing npm install inherits and n, and the node version required by Rocket.Chat:
sudo npm install -g inherits n && sudo n 12.14.0Download the latest Rocket.Chat version:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgztar -xzf /tmp/rocket.chat.tgz -C /tmpInstall (this guide uses /opt but feel free to choose a different directory):
cd /tmp/bundle/programs/server && npm installsudo mv /tmp/bundle /opt/Rocket.ChatAdd the rocketchat user, set the right permissions on the Rocket.Chat folder and create the Rocket.Chat service file:
sudo useradd -M rocketchat && sudo usermod -L rocketchatsudo chown -R rocketchat:rocketchat /opt/Rocket.Chatcat << 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
EOFOpen 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):
MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
PORT=3000Setup storage engine and replication for MongoDB (mandatory for versions > 1), and enable and start MongoDB and Rocket.Chat:
sudo sed -i "s/^# engine:/ engine: wiredTiger/" /etc/mongod.confsudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.confsudo systemctl enable mongod && sudo systemctl start mongodmongo --eval "printjson(rs.initiate())"sudo systemctl enable rocketchat && sudo systemctl start rocketchatConfigure firewall rule Configure a HTTP reverse proxy to access Rocket.Chat server [Configure mongo access control] [Configure production values for mongodb]
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.