Deploy with Ubuntu
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.
MongoDB
Please refer to the official MongoDB documentation on how to install MongoDB on Ubuntu.
NodeJS
Follow the official guide to install NodeJS on Ubuntu. You can also use third-party tools like nvm or n.
Install Rocket.Chat on Ubuntu
Install the required packages/dependencies.
sudo apt install -y curl build-essential graphicsmagickDownload and extract the latest release of Rocket.Chat.
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgzExtract the Rocket.Chat server files using these commands:
tar -xzf /tmp/rocket.chat.tgz -C /tmpcd /tmp/bundle/programs/server && npm install --productionWhen executing npm install, it is recommended to operate using a non-root account. Alternatively, you can utilize the npm install --unsafe-perm --production command. This approach eliminates the necessity for building libc or upgrading the host system.
Move the extracted files to the /opt directory.
sudo mv /tmp/bundle /opt/Rocket.ChatConfigure 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 rocketchatsudo chown -R rocketchat:rocketchat /opt/Rocket.ChatDepending 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
EOFThe 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 rocketchatUpdate 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=rs01MongoDB Configuration
Open the MongoDB config file (
/etc/mongod.conf) in your preferred text editor.
nano /etc/mongod.confSet the storage engine to
wiredTiger.
storage:
engine: wiredTigerEnable replication, and name the replicaset
rs01.
replication:
replSetName: rs01The 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: rs01Start MongoDB with the following command:
sudo systemctl enable --now mongodThen, 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 rocketchatConfigure 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