How to Deploy Rocket.Chat with Ansible and Docker: A Step-by-Step Guide

Imagine your team’s communication as a bustling digital hub—Rocket.Chat keeps everyone connected with secure, customizable chat channels. This guide shows you how to automate the deployment of Rocket.Chat in a Docker container using Ansible, complete with firewall configuration for secure access. Perfect for IT admins and teams seeking a self-hosted messaging solution, this setup is fast, scalable, and user-friendly. Let’s launch your Rocket.Chat server and boost team collaboration!

Why Use Rocket.Chat with Ansible and Docker?

Rocket.Chat is an open-source, self-hosted alternative to Slack, offering team messaging, file sharing, and integrations. Running it in Docker ensures a lightweight, portable environment, while Ansible automates the setup, saving time and reducing errors. Think of it as assembling a communication command center with an automated blueprint. This approach is ideal for businesses needing secure, flexible collaboration tools.

Prerequisites for a Smooth Deployment

Before starting, ensure you have:

  • Ansible 2.9+ installed on your control node.
  • SSH access to a Linux server (e.g., Ubuntu, CentOS) with internet access.
  • A domain name or IP address for accessing Rocket.Chat.
  • Basic familiarity with Docker and YAML configuration.

Quick Tip: Verify SSH connectivity to your server to avoid delays during deployment.

Step-by-Step Guide to Deploy Rocket.Chat

Follow these steps to automate your Rocket.Chat setup using the Rocket.Chat Ansible repository.

1. Clone the Ansible Repository

Begin by downloading the playbook from GitHub:

git clone https://github.com/Shipssv83/Ansible-RocketChat-Docker-Install.git
cd Ansible-RocketChat-Docker-Install

This repository contains all the playbooks and roles needed for a complete setup.

2. Install Ansible Galaxy Roles

Install the required roles to support your playbooks:

ansible-galaxy install -r roles/requirements.yml

To update existing roles, run:

ansible-galaxy install -g -f -r roles/requirements.yml

These roles handle server setup, Docker installation, and Rocket.Chat configuration.

3. Configure the Inventory File

Create an inventory file to specify your target server:

vim inventory

Add your server details, for example:

[servers]
192.168.1.100 ansible_user=root

Replace 192.168.1.100 with your server’s IP and root with your SSH user.

4. Customize Playbook Variables

Tailor the deployment by editing key variables in your playbook:

vars:
  fqdn: "example.com"
  server_name: "rocket.{{ fqdn }}"
  rocket_root_url: "https://rocket.{{ fqdn }}"

What do these do?

  • fqdn: Sets the domain for your server (e.g., example.com).
  • server_name: Defines the hostname for Rocket.Chat (e.g., rocket.example.com).
  • rocket_root_url: Specifies the URL for accessing Rocket.Chat.

5. Configure the Server Environment

Run the server setup playbook to prepare the environment:

ansible-playbook -i inventory --user root --extra-vars "host=servers" playbooks/server-install.yml

This playbook installs essential packages and sets the server’s timezone.

6. Install Docker and Docker Compose

Deploy Docker with this playbook:

ansible-playbook -i inventory --user root --extra-vars "host=servers" playbooks/docker-install.yml

This sets up Docker and Docker Compose, creating a foundation for running containers.

7. Deploy Rocket.Chat in Docker

Launch Rocket.Chat with the final playbook:

ansible-playbook -i inventory --user root --extra-vars "host=servers" playbooks/rocketchat-docker-install.yml

This playbook:

  • Pulls the Rocket.Chat Docker image.
  • Configures web access for Rocket.Chat.
  • Sets up UFW firewall rules to allow secure traffic.

Accessing Rocket.Chat

Once deployed, access Rocket.Chat at:

https://rocket.example.com

Log in with the default admin credentials (set during deployment or found in the logs). Then, create teams, channels, and user accounts to start collaborating.

Important: Secure your instance by enabling HTTPS with an SSL certificate (e.g., via Let’s Encrypt) and updating admin credentials immediately.

Configuring Rocket.Chat

To set up your team’s workspace:

  1. Log in to the Rocket.Chat web interface.
  2. Create channels for team discussions under the “Channels” tab.
  3. Invite users and assign roles (e.g., admin, member).
  4. Integrate with tools like GitHub or Zoom for enhanced functionality.

Benefits of This Setup

This deployment delivers:

  • Automation: Ansible streamlines setup, reducing manual effort.
  • Security: UFW ensures only necessary ports are open.
  • Scalability: Docker makes it easy to scale or replicate your setup.
  • Customization: Rocket.Chat supports integrations to fit your team’s needs.

It’s like building a tailored communication hub that grows with your organization.

Troubleshooting Tips

If you encounter issues:

  • Check Playbook Logs: Review Ansible output for errors.
  • Verify Docker Containers: Use docker ps to confirm Rocket.Chat is running.
  • Inspect Firewall Rules: Ensure UFW allows port 443 (and others if customized).
  • Test URL Access: Confirm your rocket_root_url is reachable via HTTPS.

Conclusion: Boost Team Collaboration with Rocket.Chat

With Rocket.Chat, Ansible, and Docker, you’ve created a secure, automated messaging platform that keeps your team connected. Your server is now ready for seamless chats, file sharing, and integrations. Want more IT automation tips? Visit blog.1it.pro or share your Rocket.Chat setup on 1it.pro to inspire others!

UA EN RU

Зв'язатися з нами

Telegram Email