Deploy with Docker & Docker Compose
Last updated
Last updated
Deploying Rocket.Chat with Docker and Docker Compose is a straightforward and highly recommended deployment method due to its simplicity and flexibility. This guide will walk you through the essential steps, whether you're a seasoned Docker expert or new to containerization, ensuring a smooth deployment for your Rocket.Chat workspace.
In this guide, you'll learn how to:
Installing Docker and Docker Compose
Ensure you have and (v2 is required) installed and operational. If you don't have them installed, you can conveniently set them up using Docker's official helper script:
To run Docker commands without using sudo, add the current user to the Docker group and then reboot using the following commands:
Fetching Compose file
Editing Environment Variables
Modifying the configurations in the compose file directly is strongly discouraged. Instead, use environment variables. You can set environment variables using a .env
file.
Remember to uncomment the variables you are updating in the .env
file.
Set the RELEASE
variable in the .env
to your desired Rocket.Chat version.
Edit ROOT_URL
from the default http://localhost:3000
to match your domain name or IP address.
If you have a registration token to register the workspace automatically, you can add it to the .env
file like this:
If you are using MongoDB Atlas as the database provider, edit the value of the MONGO_URL
variable to be your connection string in this format:
Save the .env
file and start up the container by executing this command:
This command will:
Start a MongoDB service named mongodb
.
Start a service rocketchat
, which will also wait for mongodb
to be ready.
Start & Stop Docker Compose
To stop your workspace from running, execute this command:
To start your docker-compose container, run this command:
To see the log/status of your Rocket.Chat container, execute this command:
Official image (stable and tested)
Latest Release Image
This is an image that holds the latest stable Rocket.Chat updates on the docker repository. The release may be from the develop
or master
branch.
Preview Image
The Rocket.Chat preview image deploys a container with a database inside. It's useful for quickly trying or running tests, not requiring a dedicated database installation.
Specific Release Image
Bleeding-edge untested develop build image
This is an image maintained at Rocket.Chat's docker repository was updated from the develop
(untested) branch, containing the latest updates for those who want to work with the newest features.
Using Docker & Docker compose, you can update your rocketchat
docker image to the latest or preferred version of Rocket.Chat.
To update your Rocket.Chat version,
For the latest version, use latest
as the RELEASE
variable in the .env
file. Alternatively, you can pull the Rocket.Chat image directly with the latest
tag with this command:
Now, stop, remove and restart the existing container with these commands:
You can secure your Rocket.Chat docker instance with TLS certificates from Let's Encrypt. Using Traefik as a reverse proxy, the certificates are automatically generated, enabling safe access to your Rocket.Chat instance via HTTPS on your specified domain.
To get HTTPS, ensure the correct A record (optionally CNAME) is set for your domain going to your server IP.
LETSENCRYPT_EMAIL
: Your required email for the TLS certificates.
DOMAIN
: Your domain or subdomain name only. Avoid adding https:// or any trailing slashes. Confirm that this domain resolves to the server IP address.
BIND_IP
: Set to 127.0.0.1
.
Download the traefik template by running the following command:
Recreate the existing Rocket.Chat container
Star traefik
Wait for the TLS certificates to generate and Rocket.Chat to restart. Then, access your Rocket.Chat instance securely at https://your-domain.com, using the actual domain name you configured.
To back up your MongoDB database in docker,
Run the following command on your terminal to list out all running containers:
Take note of your mongo container name.
Run this command to dump the database into a binary file db.dump
When successful, you should see db.dump
file in the current directory.
To restore the backup, run the following command:
Navigate to your preferred directory and create a compose.yml
file following . Alternatively, you can use the curl
command to download the example compose.yml
file by executing this command:
In your project directory, create a .env
file with this command and paste the contents of
If you cloned the , you can copy the .env.example
to .env
with this command:
See our and Keeping the default release aslatest
is not recommended.
MongoDB ensures continuous 24 x 7 operations and live backup, reducing the need for frequent restarts. Refer to the for proper server operation and management. Optionally, manage messages and configurations by uncommenting the volume mounts, and ensuring a data subdirectory is available for data storage and mounting.
Once the container is running, visit http://localhost:3000 on your browser. You can now explore your Rocket.Chat workspace and .
The is responsible for maintaining and controlling Rocket.Chat's official stable image through Docker. It is also reviewed by the Docker committee.
You can set up your Rocket.Chat workspace with a specific image. Select the release you need from the and use it to run the following command:
Before you proceed, see the .
Updating the Rocket.Chat image doesn't affect your data since it exists in the Mongo image. Ensure that the version of your MongoDB is compatible with the intended before proceeding with the update.
For a specific version, modify the RELEASE
variable in the .env
file to point to the of that version. Alternatively, you can edit the compose.yml
file to point to the desired Rocket.Chat version.
In the file, change the RELEASE
value to your specified version.
In the file, change the rocketchat
service image
value to point to an image in the rocketchat registry image with a of your desired version.
Update the following variables in your .env
file. If you don't have one, create a .env file following .
RELEASE
: Your preferred Rocket.Chat release. See the to know more about our releases.
DOMAIN
: Set the value to "," replacing "your-domain.com" with the domain name you want to use.
Congratulations on successfully deploying Rocket.Chat using Docker! You can now communicate effortlessly with your team members on your workspace. Visit the to configure your workspace and onboard other team members.