The recommended deployment methods are Docker, AWS, and Kubernetes. Using other deployment methods may result in unexpected challenges or compatibility issues.
This is a community-supported installation method. To learn more, see this forum thread.
This document will walk you through the process of deploying Rocket.Chat on your Windows machine using Docker.
Prerequisites
Before you begin, make sure you have the following:
Minimum of 4 GB of memory on your Windows machine
Minimum of 20 GB of disk space, preferably SSD
Your system has the latest Windows updates
Download and install Docker for Windows
Enabled Hyper-V (requires a reboot)
See the Docker desktop virtualization to enable Hyper-V.
Install Rocket.Chat with Windows
On your Windows computer, create or open a directory where you want to store your Rocket.Chat server content
In this directory, create a file named
docker-compose.yml
. You can use the official example as a template for configuring this fileStill in the directory, execute the following command to create and start the containers defined in the Docker Compose file:
docker compose up
Once the containers are up, open your browser and visit
http://localhost:3000
to access your Rocket.Chat workspace.It may take a few minutes for the workspace to be fully accessible, as the server initializes.
If you experience any issues or performance delays, you can check the server logs for errors or other useful information by running:
docker compose logs -f rocketchat
This command provides real-time logs, which can be helpful for troubleshooting and performance monitoring.
Configure your workspace
Finally, follow the configuration prompts to complete the setup of your Rocket.Chat workspace.
Update the workspace version
To update the workspace version, modify the release version in the docker-compose.yml
file. Then, run the following commands:
docker compose stop rocketchat
docker compose rm rocketchat
docker compose up -d rocketchat
Set up HTTPS for your workspace
There are various ways to configure SSL and enable HTTPS for your workspace. In this section, we’ll look at some methods to secure your workspace with HTTPS.
Using Caddy
Install Caddy for Windows.
You must have at least port
443
opened so the Caddy server will request an SSL certificate from Let's Encrypt. You can also open port80
to redirect HTTP requests to HTTTPS.Make sure that you have a domain name ready.
Using Caddyfile
Create the folders /etc/caddy
in the directory where Caddy is installed. In this folder, create a Caddyfile
text file with no extensions. Enter the following code snippet in this file:
yourdomain.com {
reverse_proxy localhost:3000
}
If you are using a domain name for testing purposes, such as example.online
, update the Caddyfile
configuration as follows:
example.online {
reverse_proxy localhost:3000
tls internal
}
Save the file and run Caddy in the terminal. Your workspace should now be accessible using the domain name.
Alternative Caddy methods
For more Caddy configuration options, refer to the following documents:
Using ngrok
You can use ngrok to enable HTTPS for your workspace for testing purposes. Follow these steps:
Create an ngrok account if you don’t have one. Log in and follow the installation steps for Windows using a method of your choice. You can install via Chocolatey or download an executable file.
Once the installation is complete, create a domain from Universal Gateway > Domains. A domain is automatically generated. We will use this domain to point to our locally deployed workspace.
Click the kebab menu against the domain name and select Start Tunnel. You can choose to start the tunnel using the command line, from a config file, or using Docker. Here, we are using the command line option. Open the terminal and paste the command that is displayed in the ngrok portal. For example,
ngrok http --url=amazed-monkfish-busy.ngrok-free.app 80
.Typically, the local workspace is deployed on the port
3000
. In this ngrok command, replace80
with3000
.Now, the command looks like this:
ngrok http --url=amazed-monkfish-busy.ngrok-free.app 3000
. This will point the domain to the workspace running on port3000
.
Run the command and access the workspace on a browser using the domain, for example
amazed-monkfish-busy.ngrok-free.app
.