The recommended deployment methods are Docker and Kubernetes.
Rocket.Chat offers a seamless and user-friendly deployment solution on Digital Ocean with the 1-Click install from the Digital Ocean marketplace. Follow the steps in this document to install Rocket.Chat using Digital Ocean.
Preparation steps
Before you begin, make sure you have the following:
An active Digital Ocean account.
A domain name (optional). You can use Digital Ocean's provided IP address, but it is recommended that you have a domain name for production setup. For example,
chat.mycompany.com
.With this setup, HTTPS will be available using Let's Encrypt certificates.
Step 1: Create a Rocket.Chat droplet
Make sure that you are logged into your Digital Ocean account and follow these steps:
Go to the Rocket.Chat app on the Digital Ocean marketplace.
Click Create Rocket.Chat Droplet.
A new tab opens with the Create Droplets page, where we configure the droplet. For further details, refer to the How to Create a Droplet guide.
Choose the region and the data center for the droplet according to your needs.
In the Choose an image section, the Rocket.Chat image is selected automatically, so you don’t need to do anything here.
In the Choose size section, select the CPU and storage options according to your needs.
(Optional) You can add more storage or enable automated backups of the droplet.
In the Choose Authentication Method section, select how you want to log in to the droplet.
In the Finalize Details section, you can add droplets with the same configuration, provide a hostname to the droplet (or the default one is used), add tags, and select the project.
Once you have selected the options, click Create Droplet.
Give it a few minutes, and your droplet should be created successfully. You can view the droplet details, such as the IP address. Now, create a registered domain name if you don’t have one and set up an A record from your domain (for example, chat.mycompany.com
) to the droplet's IP address. You'll need the domain to enable HTTPS on your workspace. If you are deploying for testing purposes and do not need a domain name, you can directly proceed to the next step.
Step 2: Connect to the Rocket.Chat droplet
Once the droplet is set up, you can log in and access your Rocket.Chat workspace. Follow these steps to do so:
Click the droplet to access the droplet view page.
Click Console to launch the droplet as a root user. Alternatively, use the command
ssh root@your_droplet_ip
.Once connected, you will see a message as follows:
Now you can access your Rocket.Chat workspace by visiting http://<droplet-ip>:3000
. The first user needs to create an account using the setup wizard, and this user will be automatically set as the workspace administrator.
The Digital Ocean deployment solution is a one-click installation of the server with the Docker deployment of Rocket.Chat. See deploy with Docker & Docker Compose to learn how to manage your Rocket.Chat Docker deployment.
Next steps
Great! You’ve successfully created your Rocket.Chat workspace and logged in. Next, check out the following documents to get started:
User Guides: Learn the basics of your Rocket.Chat account, the types of rooms, and how to communicate with your workspace users.
Workspace Administration: Administrators and owners can set and manage various configurations.
Marketplace: Explore the available apps to enhance your workspace.
You can also apply the following additional configuration to your Rocket.Chat setup for enhanced security and performance:
Enable HTTPS for your Rocket.Chat workspace using Nginx
For your workspace’s security, your domain should be accessible only via HTTPS. While there are various ways to set up a reverse proxy, this section provides a walkthrough on using Nginx.
Configure your domain or subdomain
To make your Rocket.Chat instance accessible via a custom domain or subdomain (e.g., chat.mycompany.com
), you need to create a DNS record with your domain provider (e.g., AWS Route 53, Namecheap, GoDaddy, Cloudflare, etc.). To achieve this, follow these steps:
Log in to your domain registrar or DNS hosting provider
Go to the DNS management section for your domain
Create an A record pointing to your DigitalOcean droplet’s IP address:
Type: A
Host/Name: chat (if using a subdomain like
chat.mycompany.com
) or @ (if using the root domain likemycompany.com
)Value: Your DigitalOcean droplet’s public IPv4 address
TTL: Default (e.g., 300 seconds)
Save the record
To verify that the domain is resolving correctly, run:
The setup is correct if either of these commands returns your droplet’s IP address.
Install Nginx and Certbot on your droplet
Click Access, log in as root, and launch the droplet. Alternatively, use the command ssh root@your_droplet_ip
. Then follow these steps:
Install Nginx
Install Certbot (for Let's Encrypt SSL)
Configure Nginx for your domain
Create an Nginx configuration file:
Replace
chat.mycompany.com
with the appropriate domain name.Add:
Save and exit.
Enable the site and reload Nginx:
Replace
chat.mycompany.com
with the appropriate domain name.
Obtain an SSL certificate
Run:
Certbot will:
Obtain an SSL certificate from Let's Encrypt
Automatically configure Nginx to use HTTPS
Verify renewal:
Test your HTTPS setup
Visit https://<your-domain>
in your browser. If everything is set up correctly, your Rocket.Chat workspace will now be secured with HTTPS.
Monitor and log your deployment
Effective logging helps you monitor the health and status of your Rocket.Chat deployment. This section covers logging for Rocket.Chat, MongoDB, and reverse proxies like Traefik or Nginx.
Rocket.Chat logs
To check the status and logs of your Rocket.Chat container, follow these steps:
Use any of the following commands to list containers running in your Docker environment:
Once you identify your Rocket.Chat container, you can inspect its logs using any of these commands:
Note:
Replace
<Container_Name>
and<Service_Name>
with the appropriate values such asdocker compose logs -f rocketchat
.Rocket.Chat logs to stdout, so there isn't a specific log file within the container. The Docker logging system captures these stdout logs, making them accessible through the docker logs command
MongoDB logs
MongoDB is a crucial part of your Rocket.Chat deployment. Monitoring its logs can help identify database-related issues.
View MongoDB logs by running any of these commands:
To inspect MongoDB’s health, run:
This returns detailed server status information.
Replace
<Container_Name>
with the appropriate values.
Nginx logs
Check error logs:
Check access logs:
Monitor logs in real-time:
Check if Nginx is running:
Test the Nginx configuration:
If there are configuration issues, restart Nginx after fixing them:
Visit the accessing your workspace guide to configure your workspace and onboard other team members.
Update your workspace version
It’s important to keep your workspaces updated to enjoy the benefits of new features and fixes. Since DigitalOcean runs Rocket.Chat using Docker, the update process is similar to a standard Docker deployment.
Follow these steps to update your workspace version:
Navigate to the rocketchat directory and edit the
.env
file:Set the
RELEASE
variable to your prefered Rocket.Chat version:Refer to the official releases for available versions.
Now, remove and restart your rocketchat container to update the workspace:
If you have any questions or issues when updating Rocket.Chat, refer to Guidelines for updating Rocket.Chat and Updating Rocket.Chat FAQ.