- Print
- DarkLight
- PDF
Deploy on Debian
- Print
- DarkLight
- PDF
Preparation steps
Depending on the version of Rocket.Chat you want to install, check the release notes to see the supported engine versions for MongoDB and NodeJs, and install as recommended.
Install MongoDB
Please refer to the official MongoDB documentation on how to install MongoDB on Debian. For the list of supported versions, see our documentation here.
Install NodeJS
Follow the official guide to install NodeJS on a Debian system. Check out our page on supported node versions for your specific version. You can also use third-party tools like nvm or n.
When deploying MongoDB, it is crucial to secure MongoDB instances and close all MongoDB ports from public access. Unsecured instances can lead to significant security vulnerabilities. Your vigilance in these practices is essential for maintaining the integrity and safety of your systems.
Install Rocket.Chat on Debian
Update your system by running this command:
sudo apt -y update
sudo apt -y upgrade
Install required packages/dependencies:
sudo apt install -y curl build-essential graphicsmagick
To download the latest Rocket.Chat version run the following command:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
You can also use wget
to download Rocket.Chat with this command:
wget https://releases.rocket.chat/latest/download -O /tmp/rocket.chat.tgz
To download a specific version, replace latest
the version number.
wget https://releases.rocket.chat/4.1.2/download -O /tmp/rocket.chat.tgz
Extract the archive with
tar
:
tar xzf /tmp/rocket.chat.tgz -C /tmp
You should now see a new directory under /tmp
named bundle
.
Next, install all the node dependencies:
When executing
npm install
, it is recommended to operate using a non-root account. Alternatively, you can utilize thenpm install --unsafe-perm
command. This approach eliminates the necessity for building libc or upgrading the host system.
(cd /tmp/bundle/programs/server; npm i)
/tmp
has been a temporary non-root user-writable location to prepare the bundle. For this guide, we're going to use /opt to be the final location but you can choose any other. Whatever may it be, if not /opt, make sure you change the location in all the other places it is specified.
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
Create the Rocket.Chat service file:
sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Depending on how you install NodeJS, the binary path may be different. Save the path to a variable.
NODE_PATH=$(which node)
Now, save the systemd 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=$NODE_PATH /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
[Install]
WantedBy=multi-user.target
EOF
The command above will create a barebone service file, this service file is what systemd will use to start your Rocket.Chat daemon/process.
Passing environment variables
Pass some environment variables to the running process. See Rocket.Chat environmental variables for more details. To update the Rocket.Chat file, run the following command :
sudo systemctl edit rocketchat
Update the text editor with the information below and save.
[Service]
Environment=ROOT_URL=http://localhost:3000
Environment=PORT=3000
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
Additional steps for installing 6.10 release
If you’re installing version 6.10, run these additional commands:
mkdir -p /home/rocketchat/.cache cd PATH_TO_ROCKETCHAT_INSTALLATION/programs/server/npm/node_modules/@rocket.chat/apps-engine export DENO_DIR=/home/rocketchat/.cache/deno npm install --production npm run postinstall chown -R rocketchat:rocketchat /home/rocketchat
MongoDB configuration
Open the MongoDB config file (
/etc/mongod.conf
) in your preferred text editor.
nano /etc/mongod.conf
Set the storage engine to
wiredTiger
.
storage:
engine: wiredTiger
Enable replication, and name the replicaset
rs01
.
replication:
replSetName: rs01
The MongoDB replica set is mandatory for Rocket.Chat > 1.0.0.
Your MongoDB config file should look something like the following:
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1
processManagement:
fork: true
timeZoneInfo: /usr/share/zoneinfo
replication:
replSetName: rs01
Read the official documentation for a complete list of available MongoDB config options.
Start MongoDB with the following command:
sudo systemctl enable --now mongod
Then, initiate replica set with this command:
mongo --eval "printjson(rs.initiate())"
You can start your Rocket.Chat workspace now using this command:
sudo systemctl enable --now 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.