Deploy with Ubuntu
    • Dark
    • PDF

    Deploy with Ubuntu

    • Dark
    • PDF

    Article summary

    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.

    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 Ubuntu

    • Install the required packages/dependencies.

    sudo apt install -y curl build-essential graphicsmagick
    curl -L -o /tmp/
    • Extract the Rocket.Chat server files using these commands:

    tar -xzf /tmp/ -C /tmp
    cd /tmp/bundle/programs/server && npm install --production

    When 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.Chat

    This guide uses the re/opt directory. However, you can choose your preferred directory.

    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
    • 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
    Description=The Rocket.Chat server nginx.service mongod.service
    ExecStart=$NODE_PATH /opt/Rocket.Chat/main.js

    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

    sudo systemctl edit rocketchat
    • Update the text editor with the information below and save.


    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/
    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.

      engine: wiredTiger
    • Enable replication, and name the replicaset rs01.

      replSetName: rs01

    The MongoDB replica set is mandatory for Rocket.Chat > 1.0.0.

    Your MongoDB config file should look something like the following:

      dbPath: /var/lib/mongodb
        enabled: true
      engine: wiredTiger
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log
      port: 27017
      fork: true
      timeZoneInfo: /usr/share/zoneinfo
      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 ( Follow the configuration prompts to configure your workspace.

    Optional configurations

    Was this article helpful?


    Eddy AI, facilitating knowledge discovery through conversational intelligence