Deploy on Kali
Preparation Steps
Install necessary dependencies
Update the package list and configure apt to install the official MongoDB packages with the following repository file:
sudo apt-get -y update
sudo apt-get install -y dirmngr gnupg && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
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
Configure Node.js to be installed via the package manager.
Install the Node and MongoDB versions required for the Rocket.Chat release you intend to install.
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 graphicsmagick
Using npm install inherits and n, and the node version required by Rocket.Chat.
sudo npm install -g inherits n && sudo n 12.18.4
Install Rocket.Chat on Kali
Download and extract the latest Rocket.Chat version with these commands:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Install NPM.
When executing npm install
, it is recommended to operate using a non-root account. Alternatively, you can utilize the npm install --unsafe-perm
command. This approach eliminates the necessity for building libc or upgrading the host system.
cd /tmp/bundle/programs/server && npm install
sudo mv /tmp/bundle /opt/Rocket.Chat
Configure the Rocket.Chat service
Add the rocketchat user and set the right permissions on the Rocket.Chat folder.
sudo useradd -M rocketchat && sudo usermod -L rocketchat
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Create the Rocket.Chat service file.
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.service mongod.service
[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
Open the service file (
/lib/systemd/system/rocketchat.service
) using sudo and update theROOT_URL
environmental variable to reflect the URL you are using to access the server. Optionally, you can changeMONGO_URL
,MONGO_OPLOG_URL
andPORT
.
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=3000
Set up storage engine and replication for MongoDB.
sudo sed -i "s/^# engine:/ engine: wiredTiger/" /etc/mongod.conf
sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
Enable and start MongoDB with the following command
sudo systemctl enable mongod && sudo systemctl start mongod
Then, initiate replica set with this command:
mongo --eval "printjson(rs.initiate())"
Enable and start your Rocket.Chat workspace now using this command:
sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Configure your Rocket.Chat server
To access your Rocket.Chat workspace, open a web browser and navigate to the specified ROOT URL (http://your-host-name.com-as-accessed-from-internet:3000). Follow the configuration prompts to configure your workspace.
Optional configurations
Last updated