Rocket.Chat is easy to setup team chat application

Rocket.Chat Live Chat Software

On Premise Alternative to Slack With Chat Bot Features.

Rocket.Chat is easy to setup and helps teams collaborate and provide live support. Improve transparency by centralizing internal and external communications.

Overview

Rocket.Chat is amongst the popular live chat softwares partly an open source live chat project. It has a free live chat version as community edition as well as a paid hosted live chat version for large companies with private internal chat features. This live chat application runs in the browser but can be installed on your own server as well.

Rocket.Chat supports live chat customer support along with the team chat feature. It has desktop apps for Windows, Mac, and Linux and mobile apps as well. Rocket.Chat also supports video conferencing feature which helps the teams to collaborate. Rocket.chat has built in support for chat bots which helps you generate leads, create help tickets, and chat across channels. Rocket.Chat plugin support is also a big plus against the other live chat softwares like LiveChat, ZulipChat.

This live chat and collaboration tool helps the teams to work remotely. It can be a cheap alternate to zoom and slack. As Coronavirus is affecting workplaces worldwide and requirement of remote collaboration and live chat tools is very high.

System Requirements

Actual requirement varies greatly with:

  • Number of concurrently active users
  • Number of actual connected devices per user
  • Activities of the users - solely text based messaging takes minimal resources; while file sharing and jpg uploads will consume more resources
  • Bot or integration activity level; different bot and/or integrations have different requirements

Bare-metal Server- Intel Xeon E5-2603 v4 (or equivalent) [1.7 GHz, 6 cores]

  • 4 GB RAM
  • 500 GB hard disk or larger
  • Ubuntu 18.04 LTS (with or without docker)

The above minimal hardware configuration is ideal for corporate or group with up to 1,000 users, up to 300 concurrently active and moderate level of mixed uploads, sharing, and bot activities.

VPS (minimal)- Single core (2 GHz)

  • 1 GB RAM
  • 30 GB of SSD

VPS (recommended)- Dual core (2 GHz)

  • 2 GB RAM
  • 40 GB of SSD

The above virtual configuration, when not over-provisioned by provider, can accommodate small deployments of up to 500 users, up to 100 concurrently active and moderate level of mixed uploads, sharing, and bot activities

Features

Most of the basic features for chatting, sharing files, and integrating with other apps like Trello or Google Drive are available in every version. However for some advanced features you’ll have to choose paid plans of the Rocket.Chat. Following are the key features of Rocket Chat

  • Free Open Source Software
  • Hassle free MIT license
  • BYOS (bring your own server)
  • Multiple Rooms
  • Direct Messages
  • Private Groups
  • Public Channels
  • Desktop and Mobile Notifications
  • Edit and Delete Sent Messages
  • Mentions
  • Avatars
  • Markdown
  • Emojis
  • Choose between 3 themes: Light, Dark, Black
  • Sort conversations alphabetically or group by activity, unread or favourites
  • Transcripts / History
  • File Upload / Sharing
  • I18n - [Internationalization with Lingohub]
  • Hubot Friendly - [Hubot Integration Project]
  • Media Embeds
  • Link Previews
  • LDAP Authentication
  • REST-full APIs
  • Remote Locations Video Monitoring
  • Native Cross-Platform Desktop Application

Installation via Snap on Ubuntu

Installing a snap on Ubuntu is as easy as

sudo snap install rocketchat-server

Then browse to http://localhost:3000 and setup Rocket.Chat.

Snaps are secure. Rocket.Chat and all of its dependencies are isolated from the rest of your system. Snaps also auto update when we release a new version. So no need more hassle updating.

On Ubuntu 16.04LTS, install snapd first:

sudo apt-get install snapd 

Installation via Docker

First, start an instance of mongo and initiate replicaSet:

$ docker run --name db -d mongo:4.0 --smallfiles --replSet rs0 --oplogSize 128
$ docker exec -ti db mongo --eval "printjson(rs.initiate())"

Then start Rocket.Chat linked to this mongo instance:

$ docker run --name rocketchat --link db --env MONGO_OPLOG_URL=mongodb://db:27017/local -d rocket.chat

This will start a Rocket.Chat instance listening on the default Meteor port of 3000 on the container.
If you’d like to be able to access the instance directly at standard port on the host machine:

$ docker run --name rocketchat -p 80:3000 --link db --env ROOT_URL=http://localhost --env MONGO_OPLOG_URL=mongodb://db:27017/local -d rocket.chat

Then, access it via http://localhost in a browser. Replace localhost in ROOT_URL with your own domain name if you are hosting at your own domain.
If you’re using a third party Mongo provider, or working with Kubernetes, you need to override the MONGO_URL environment variable:

$ docker run --name rocketchat -p 80:3000 --env ROOT_URL=http://localhost --env MONGO_URL=mongodb://mymongourl/mydb --env MONGO_OPLOG_URL=mongodb://mymongourl:27017/local -d rocket.chat

FAQs

When will my snap installation get the latest release?

Snaps are one of our biggest install base. They are also auto updating. As a result we like to spend more time testing before releasing. Updated Snaps are usually released around the 15th of the month - around 2 weeks after a new release. This gives us time to look for issues so you don’t have to.

If you have special requirements and really need to use the latest release immediately then please consider another installation method e.g docker

Ubuntu 16.04 LTS gives message “snap not found”, what’s wrong?

Make sure you’re using x64 or amd64 (or armhf) images, especially on VPS or VMs. x86 (32-bit) is not supported.

How do I manually update to a new release?

While updates happen automatically usually within 6 hours from time of release, you can update manually by issuing this command:

sudo snap refresh rocketchat-server 

How do I revert to the previous version of Rocket.Chat?

sudo snap revert rocketchat-server 

How do I tell if Rocket.Chat is actually running?

You can check on the status of Rocket.Chat with:

sudo service snap.rocketchat-server.rocketchat-server status 

You can also check on the status of Mongo and Caddy:

sudo service snap.rocketchat-server.rocketchat-mongo status
sudo service snap.rocketchat-server.rocketchat-caddy status 

How can I view the logs?

To see the logs from Rocket.Chat:

sudo journalctl -f -u snap.rocketchat-server.rocketchat-server 

To see the logs from Mongo or Caddy:

sudo journalctl -f -u snap.rocketchat-server.rocketchat-mongo 
sudo journalctl -f -u snap.rocketchat-server.rocketchat-caddy

I need to restart Rocket.Chat, how do I do this?

To restart Rocket.Chat:

sudo service snap.rocketchat-server.rocketchat-server restart 

Mongo and Caddy can similarly be restarted:

sudo service snap.rocketchat-server.rocketchat-mongo restart
sudo service snap.rocketchat-server.rocketchat-caddy restart

What is the restart policy?

The snap’s policy is to restart on failure.

How do I backup my snap data?

1. Stop your rocketchat-server:

sudo service snap.rocketchat-server.rocketchat-server stop

Please note: while the rocketchat-server service should be stopped, the rocketchat-mongo service should be kept running!

sudo service snap.rocketchat-server.rocketchat-mongo status | grep Active
   Active: active (running) (...)

2. Issue this backup command:

sudo snap run rocketchat-server.backupdb

3. If all goes well, you will see some output similar to:

[+] A backup of your data can be found at /var/snap/rocketchat-server/common/backup/rocketchat_backup_.tar.gz

4. Start your rocketchat-server:

sudo service snap.rocketchat-server.rocketchat-server start

5. Copy your backup file to a different system for safekeeping!

How do I restore backup data to my snap?

1. Stop your rocketchat-server:

sudo service snap.rocketchat-server.rocketchat-server stop

Please note: while the rocketchat-server service should be stopped, the rocketchat-mongo service should be kept running!

sudo service snap.rocketchat-server.rocketchat-mongo status | grep Active
   Active: active (running) (...)

2. Copy your backup file to the snap’s common folder:

sudo cp rocketchat_backup.tgz /var/snap/rocketchat-server/common/

3. Issue this restore command:

sudo snap run rocketchat-server.restoredb /var/snap/rocketchat-server/common/rocketchat_backup.tgz

4. If you are replacing an existing database, you will be warned:

*** ATTENTION ***
* Your current database WILL BE DROPPED prior to the restore!
* Would you like to make a backup of the current database before proceeding?
* (y/n/Q)>
  • [*] Extracting backup file…
  • [*] Restoring data…
  • [*] Preparing database…
  • [+] Restore completed! Please restart the snap.rocketchat services to verify.

If something goes wrong, you will instead be presented with a path to the relevant log file to help remedy errors. In this case, the database may not be usable until a restore is successfully performed.

6. Start your rocketchat-server:

sudo service snap.rocketchat-server.rocketchat-server start

How do I add option to mount media?

Note that the interface providing the ability to access removable media is not automatically connected upon install, so if you’d like to use external storage (or otherwise use a device in /media for data), you need to give the snap permission to access removable media by connecting that interface:

sudo snap connect rocketchat-server:removable-media

What folders do snaps use?

  • Your actual snap files for each version of Rocket.Chat are copied to: /var/lib/snapd/snaps and they are mounted in read-only mode.
  • Your snap common directory is: /var/snap/rocketchat-server/common/; file uploads to disk and the database are stored here.
  • Your snap data directory is /var/snap/rocketchat-server/; this is a versioned folder.
  • You can access the current snap data directory at /var/snap/rocketchat-server/current

How do I remove a specific previous version of Rocket.Chat?

You can do this by issuing the following command, where N is the desired version:

snap remove --revision=N rocketchat-server

How do I add a tool like strace to debug what’s happening in my snap?

snapcraft prime
snap try prime --devmode
cp /usr/bin/strace prime
snap run  --shell
sudo ./strace

How do I change rocket.chat PORT, MONGO_URL and MONGO_OPLOG_URL in my snap?

Starting from release 0.73, it is possible to configure these environmental variables through snap hooks like this:

sudo snap set rocketchat-server port=
sudo snap set rocketchat-server mongo-url=mongodb://:/
sudo snap set rocketchat-server mongo-oplog-url=mongodb://:/local

Remember to restart rocket.chat service after setting new values:

sudo systemctl restart snap.rocketchat-server.rocketchat-server.service

This is an example to run rocket.chat on port 4000 instead of 3000 and set database name to rocketchat instead of parties:

sudo snap set rocketchat-server port=4000
sudo snap set rocketchat-server mongo-url=mongodb://localhost:27017/rocketchat
sudo systemctl restart snap.rocketchat-server.rocketchat-server.service

How do I change other environmental variables in my snap?

Starting from release 0.73, it is possible to overwrite any rocket.chat environmental variables dropping files ending in .env in $SNAP_COMMON directory (/var/snap/rocketchat-server/common/), for example, you can create a file to change SMTP settings:

cat /var/snap/rocketchat-server/common/overwrite-smtp.env
OVERWRITE_SETTING_SMTP_Host=my.smtp.server.com

Remember to restart rocket.chat service after creating .env files:

sudo systemctl restart snap.rocketchat-server.rocketchat-server.service

More than one .env file is allowed, and more than one environmental variable defined per file is allowed.

 English