What are deployment environment variables?
Environment variables in Rocket.Chat provide a structured and reliable way to configure deployments, manage workspace settings, and provision admin users without relying on the UI. They define key settings that influence or control how your workspace is deployed and configured.
To set deployment enviroment variable, choose your deployment method below and follow the corresponding guide:
Docker: Refer to Set Rocket.Chat deployment enviroment variable on Docker.
Kubernetes: Visit the Set Rocket.Chat deployment enviroment variable on Kubernetes guide.
Podman: Go to Set Rocket.Chat deployment enviroment variable on Podman.
Resources:
Deployment environment variable: This document lists the mandatory and optional deployment variables.
Manage settings using environmental variables: This document shows how you can manage workspace settings during deployment using environment variables.
Docker
How do I deploy Rocket.Chat with Docker on Apple Silicon Mac (M-series)?
The Rocket.Chat Docker image (version 6.7.0 and later) is designed for the amd64 architecture, which is incompatible with the arm64 architecture used by Apple silicon Macs. Attempting to deploy the Docker image on an M-series Mac can result in compatibility issues.
You will likely to get this error after starting the Rocket.Chat container:
The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requestedFollow the steps below to resolve it:
Ensure you have Rosetta 2 on your Mac; this allows the M-series Macs to run Intel-based applications. Confirm this by running:
arch -x86_64 uname -mIf Rosetta 2 is installed, this command will output “x86_64.” If not, macOS will prompt you to install Rosetta 2.
Open Docker Desktop, navigate to Settings > General and enable Rosetta for Docker Desktop. This allows Docker to emulate x86_64/amd64 architecture.
In the
compose.ymlfile, add “platform: linux/amd64” to the rocketchat service.Next, add “EXPERIMENTAL_DOCKER_DESKTOP_FORCE_QEMU: 1” to the mongodb service environment. This forces the service to use the correct emulation settings.
Now, run
docker compose up -d
Your Rocket.Chat instance should now be accessible via http://localhost:3000 or your ROOT_URL.
Why are my ports blocked when using UFW with Docker?
Docker and ufw use firewall rules in ways that make them incompatible with each other. For more details, see the official Docker documentation.
Do I need to set up MongoDB myself before deploying?
No. The compose.database.yml file provisions a pre-configured MongoDB instance with replica set support automatically. You only need to manage MongoDB yourself if you are connecting to an external database like a managed instance on MongoDB Atlas.
How do I know if the Rocket.Chat is running successfully?
To check if Rocket.Chat is running successfully on Docker:
Run the following command to list all the running services:
docker psConfirm that the Rocket.Chat container is running with a status of
Up.
Visit Logging your Rocket.Chat deployment for more details.
Podman
Why am I getting "permission denied" when binding to port 80 in rootless Podman?
Linux prevents unprivileged users from binding to ports below 1024 by default. In rootless Podman, containers run without root privileges, so attempts to bind to port 80 (common with services like Traefik) will fail.
To fix this, lower the unprivileged port threshold at the kernel level by running:
echo "net.ipv4.ip_unprivileged_port_start=80" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p⚠️This system-wide change allows any unprivileged user to listen on ports 80 and above. Be aware of this security implication.