Deploy on Kali
    • Dark
      Light
    • PDF

    Deploy on Kali

    • Dark
      Light
    • PDF

    Article summary

    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

    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.

    • 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

    This guide uses /opt but feel free to choose a different directory.

    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 the ROOT_URL environmental variable to reflect the URL you are using to access the server. Optionally, you can 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=3000

    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
    • 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


    Was this article helpful?

    ESC

    Eddy AI, facilitating knowledge discovery through conversational intelligence