How to Install Rocket Chat with Docker Compose

Introduction

In today’s fast-paced business world, effective communication and collaboration are essential for success. The rise of remote work, global teams, and digital transformation has accelerated the demand for versatile team collaboration tools. One such tool that has garnered attention for its open-source approach and robust features is Rocket.Chat. In this article, we will provide an in-depth overview of Rocket.Chat, highlight its key features, compare it with other team collaboration tools, explore its use cases, and shed light on its extensive marketplace plugins.

Overview of Rocket.Chat

Rocket.Chat is an open-source team collaboration platform designed to enhance communication, productivity, and community building. Launched in 2013 by Gabriel Engel, Rocket.Chat was created with the vision of providing a secure, customizable, and extensible platform for organizations and communities to collaborate effectively.

Key Features of Rocket.Chat

1. Real-time Messaging: Rocket.Chat offers real-time messaging, allowing users to exchange messages, files, and multimedia content instantly. This feature fosters seamless and efficient communication among team members, regardless of their physical location.

2. Video and Voice Calls: Rocket.Chat includes video and voice call capabilities, eliminating the need for third-party communication tools. This facilitates direct, real-time discussions, improving the efficiency of remote work and reducing the number of applications required.

3. Screen Sharing: Users can share their screens within Rocket.Chat, making it easy to present ideas, collaborate on projects, or troubleshoot issues remotely. This feature is especially valuable for technical support teams and remote collaboration.

4. Group and Direct Messaging: Rocket.Chat allows users to create public and private channels for group discussions, as well as engage in one-on-one direct messaging. This flexibility ensures that conversations remain organized and confidential when necessary.

5. Integration and Customization: Rocket.Chat supports integration with various third-party apps and services, making it a versatile tool for businesses. You can customize your workspace with widgets, bots, and extensions to tailor it to your specific needs.

6. File Sharing: Users can upload and share files, documents, and images directly within Rocket.Chat. This feature streamlines document collaboration and ensures that all relevant information is readily accessible within the platform.

7. Multi-Platform Support: Rocket.Chat is available as a web application, desktop client, and mobile app for iOS and Android. This cross-platform compatibility ensures that teams can access their workspace from any device, making it ideal for both office and remote environments.

Comparison with Other Team Collaboration Tools

To understand the unique benefits of Rocket.Chat, it’s essential to compare it with other team collaboration tools. Let’s take a look at how Rocket.Chat stacks up against some popular alternatives.

1. Slack: Rocket.Chat and Slack share many similarities, including real-time messaging, channel-based communication, and integrations with third-party apps. However, Rocket.Chat’s open-source nature provides more flexibility and control, making it a preferred choice for privacy-conscious organizations or those seeking to customize their collaboration platform.

2. Microsoft Teams: While Microsoft Teams is an excellent choice for organizations invested in the Microsoft ecosystem, Rocket.Chat offers a more platform-agnostic approach. Rocket.Chat’s open-source model allows for a more extensive array of integrations and customization options.

3. Mattermost: Mattermost is another open-source team collaboration platform that closely resembles Rocket.Chat. However, Rocket.Chat has a broader marketplace for plugins and a more active community, leading to a wider range of features and integration options.

4. Discord: Discord is known for its gaming-oriented community, but it’s also used for team communication. Rocket.Chat is a more versatile tool suitable for a broader range of industries and use cases.

Use Cases of Rocket.Chat

Rocket.Chat’s versatility allows it to cater to a variety of use cases across different industries. Here are some examples:

1. Business Collaboration: Rocket.Chat is ideal for businesses looking to streamline communication and collaboration within their teams. With features like video calls, screen sharing, and integration capabilities, it promotes efficient workflows.

2. Education: Educational institutions can use Rocket.Chat to facilitate online learning and communication among students and teachers. It can serve as a platform for class discussions, group projects, and resource sharing.

3. Healthcare: Rocket.Chat provides a secure and HIPAA-compliant environment for healthcare professionals to communicate and share patient information securely. Its real-time messaging and video call features are valuable for remote consultations.

4. Community Building: Nonprofits, online communities, and social groups can leverage Rocket.Chat to create interactive and engaged communities. It offers the tools needed to manage conversations and foster collaboration.

5. Customer Support: Rocket.Chat can be integrated with customer support tools to provide real-time assistance to customers through chat and video calls. It streamlines the support process and enhances the customer experience.

Rocket.Chat Marketplace and Plugins

One of Rocket.Chat’s standout features is its extensive marketplace and plugin ecosystem. The marketplace hosts a wide array of extensions and integrations that enhance Rocket.Chat’s functionality. Some notable plugins and integrations include:

1. Hubot: This popular chatbot framework integrates seamlessly with Rocket.Chat, allowing you to create custom chatbots that can automate tasks and answer common queries.

2. Zapier Integration: Zapier connects Rocket.Chat with over 2,000 other apps, enabling users to create automated workflows and integrations, reducing manual data entry.

3. Jitsi Meet Integration: Rocket.Chat’s integration with Jitsi Meet enables high-quality video conferencing directly within the platform, eliminating the need for third-party conferencing tools.

4. Omnichannel Live Chat: For businesses, this plugin offers omnichannel support, allowing customer support teams to manage chats from various channels, such as websites, social media, and messaging apps, all from a single interface.

5. Rocket.Chat Apps: These are pre-built apps that provide extra functionality, such as project management, news feeds, and more, right within Rocket.Chat.
6. Enterprise Connectors: These connectors integrate Rocket.Chat with enterprise applications like Salesforce, ServiceNow, and Slack, enabling large organizations to unify their communications and workflows.

Installation

In this step-by-step guide, we’ll walk you through the process of installing Rocket.Chat on Ubuntu 20.04 LTS using Docker Compose. We will also cover the prerequisites, including installing Docker and Docker Compose, configuring firewall rules for Rocket.Chat, setting up Nginx Proxy Manager, issuing an SSL certificate, and creating an administrator account.

Prerequisites

Before installing Rocket.Chat, you’ll need to have the following prerequisites in place:

  1. Ubuntu 20.04 LTS Server: Make sure you have a clean Ubuntu 20.04 LTS server with root or sudo access. Server has minimum 2 CPU Core and 4 GB Ram.
  2. Docker and Docker Compose Installation: follow these step 
nano doc.sh 

## and paste below code 
##########
apt update && 
apt upgrade -y &&
curl -fsSL https://get.docker.com -o get-docker.sh &&
sudo sh get-docker.sh &&
curl -SL https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose &&
chmod +x /usr/local/bin/docker-compose &&
apt-get install docker-compose-plugin
##########

## to save changing press >> CTRL + X >> Y >> Enter
## change the file mode to executable 
chmod +x doc.sh

## Run this script
./doc.sh

## check version of Docker  & Docker-Compose
docker -v
docker-compose.yml
  1. Firewall Rules: Configure your firewall to allow traffic on the necessary ports. Rocket.Chat typically uses port 3000 for HTTP. You can open the port using the following commands:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3000/tcp
ufw allow 81/tcp
ufw status

## If firewall is “inactive” state then press “Y” to enable the firewall
ufw enable

## check again
ufw status
  1. Nginx Proxy Manager: We will use Nginx Proxy Manager to manage SSL certificates and reverse proxy traffic to Rocket.Chat. Install it with Docker Compose, as described later.

Rocket Chat installation

## Create a directory for Rocket.Chat
mkdir ~/rocket-chat
cd ~/rocket-chat

## you can use the curl command to download the example docker-compose.yml file by executing this command
curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -O

## create .env file 
nano .env

## paste the below code 

#############

### Rocket.Chat configuration

# Rocket.Chat version
# see:- https://github.com/RocketChat/Rocket.Chat/releases
#RELEASE=
# MongoDB endpoint (include ?replicaSet= parameter)
#MONGO_URL=
# MongoDB endpoint to the local database
#MONGO_OPLOG_URL=
# IP to bind the process to
#BIND_IP=
# URL used to access your Rocket.Chat instance
#ROOT_URL=
# Port Rocket.Chat runs on (in-container)
#PORT=
# Port on the host to bind to
#HOST_PORT=

### MongoDB configuration
# MongoDB version/image tag
#MONGODB_VERSION=
# See:- https://hub.docker.com/r/bitnami/mongodb

### Traefik config (if enabled)
# Traefik version/image tag
#TRAEFIK_RELEASE=
# Domain for https (change ROOT_URL & BIND_IP accordingly)
#DOMAIN=
# Email for certificate notifications
#LETSENCRYPT_EMAIL=

#########

## to save changes press >> Ctrl + X >> Y >> Enter

## now run docker compose without any changes in .env and compose.yml file
docker compose up -d

Open a web browser and navigate to your Rocket.Chat domain http://Server-IP:3000

Installing Nginx Proxy Manager

To set up Nginx Proxy Manager, follow these steps:

## Create a directory to store Nginx Proxy Manager configurations
mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager

## Create a docker-compose.yml file for Nginx Proxy Manager:
nano docker-compose.yml

## Paste the below code

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

## Save changes with Press Ctrl + X >> Y >> Enter
## Run Nginx Proxy Manager 
docker-compose up -d

Open a web browser and navigate to your Nginx Proxy Manager domain http://Server-IP:81

Issuing an SSL Certificate

  1. Access the Nginx Proxy Manager web interface by opening a browser and navigating to http://your_server_ip. Log in with the default credentials ([email protected] and changeme) and change your password.
  2. Go to the “Proxy Hosts” section and add a new proxy host for your Rocket.Chat instance. Specify the domain or subdomain you want to use (e.g., chat.example.com), and make sure to enable “Force SSL” and “HSTS.”
  3. In the SSL Certificates tab, request a new SSL certificate for the proxy host you just created.
  4. Once the certificate is issued, it will be automatically configured SSL Certificate for your Rocket.Chat instance.

Note: If you face any problem to run this code you also watch my Video tutorial

Accessing the Rocket.Chat Server and Creating an Administrator Account

  1. Open a web browser and navigate to your Rocket.Chat domain (e.g., https://chat.example.com).
  2. You will see the Rocket.Chat setup page. Set your administrator username, password, and other configurations.
  3. Once the setup is complete, you can log in with your administrator account and start using Rocket.Chat.

Additional Configuration and Maintenance

After successfully setting up Rocket.Chat, there are some additional configuration and maintenance tasks you might want to consider:

Configure Email Settings

To enable email notifications and password reset functionality, configure your SMTP settings in Rocket.Chat. You can access these settings in the Rocket.Chat admin panel under “Settings” > “Email.”

User Management

You can manage users, create channels, and set up permissions through the Rocket.Chat admin panel. This is where you can add new users, set user roles, and customize your collaboration environment.

Backup and Data Management

Regularly back up your Rocket.Chat data to ensure data security. You can use Docker volume backups or explore other backup solutions to safeguard your chat data.

Rocket.Chat Updates

Keep your Rocket.Chat instance up to date by periodically checking for updates and applying them as necessary. You can do this by pulling the latest Docker image and recreating the container.

shellCopy code

docker-compose pull rocketchat docker-compose up -d

Nginx Proxy Manager Updates

Similarly, you should also check for Nginx Proxy Manager updates and apply them as needed. This ensures that your SSL certificates remain valid and secure.

Troubleshooting

If you encounter any issues with Rocket.Chat or Nginx Proxy Manager, you can check their respective logs for error messages to identify and resolve problems:

## Rocket.Chat logs
docker-compose logs -f rocketchat

## Nginx Proxy Manager logs
docker-compose logs -f app

Advanced Configuration

For more advanced configurations or specific requirements, refer to the official Rocket.Chat documentation and Nginx Proxy Manager documentation. You can fine-tune your setup to meet your organization’s needs.

Security Considerations

Security should be a top priority. Regularly review and update your server’s security measures, including server updates, firewall rules, and user access. Consider enabling two-factor authentication (2FA) for Rocket.Chat users to enhance security.

By following these additional steps and best practices, you can ensure your Rocket.Chat installation remains secure, functional, and tailored to your specific collaboration needs. Rocket.Chat is a versatile platform that can serve as the backbone for team communication, and it’s important to maintain it effectively for your organization.

Watch Video Tutorial:

Confused about setting up your own Rocket Chat? Ditch the dry guides and watch my video tutorial

  • Clear, concise instructions in Urdu/Hindi with English subtitles for everyone.
  • Visual demonstration makes every step crystal clear.
  • Time-saving guide gets you up and running fast.
5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Scroll to Top