Deploy on Windows

  • 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 file

  • Still 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 port 80 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:

  1. 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.

  2. 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.

  3. 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.

    1. Typically, the local workspace is deployed on the port 3000. In this ngrok command, replace 80 with 3000.

    2. 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 port 3000.

  4. Run the command and access the workspace on a browser using the domain, for example amazed-monkfish-busy.ngrok-free.app.