Prepare for your Deployment
Rocket.Chat can be hosted on our Cloud, installed from various marketplaces, or manually installed on your server.
We offer a variety of Deployment methods, and we recommend you set up using our Docker & Docker Compose guide for several reasons mentioned below.
We have a minimum set of requirements to obtain official support from our team. These requirements are necessary to access essential system information, provide an SLA, answer questions, or solve problems. SLAs and our paid Support Policy can cover only installations matching these minimum requirements. Some requirements may vary depending on the installation size, as described in the following sections.
We strongly recommend using our official Docker images to eliminate environmental issues of missing, outdated, or mismatching dependencies, specific operating system issues, or problems during manual installations.
Rocket.Chat's cloud uses our official Docker images, which makes this installation method the most tested.
Docker is widely used for packaging applications in containers and distributing them as images, providing abstraction and isolation layers from the OS (operational system). It allows the application to be shipped with a specific version of the OS compatibility layer and its dependencies already installed and configured.
Scaling your Rocket.Chat deployment using Docker with Docker Compose is quite easy as editing the compose file.
An instance of Rocket.Chat can be up and running efficiently using our images or the compose
Maintaining a docker instance is pretty straightforward. Rocket.Chat offers both official and community support for all Docker-related issues.
We recommend running multiple application processes to maximize the usage of all available cores. Although you can use either Virtual Machines or containers, we recommend and only support the usage of Docker containers.
Virtual machines and containers differ in several ways. Still, the primary difference is that containers provide a way to virtualize an OS so that multiple workloads can run on a single OS instance. With VMs, the hardware is virtualized to run multiple OS instances. The containers’ speed, agility, and portability offer definite performance advantages for our use case.
A containerized application usually starts in a couple of seconds. Virtual machines could take a couple of minutes.
Containers use only as many system resources as needed at a given time. Before a virtual machine can start, some resources must be permanently assigned. For this reason, virtual machines tie up resources on the host, even if they are not using them. Host resources can be distributed effectively with the help of containers.
When an application runs inside a virtual machine, it usually cannot directly access the hardware resources of the host machine, such as graphics cards. This can slow down the processing speed of the application. However, when an application is containerized, it can access and use the hardware resources of the host machine, including graphics cards, which can speed up processing.
With virtual machines, you have to install an entire guest operating system, duplicating many components already running on your host server. However, with containers, you do not need to install a complete operating system for each container.
Using Docker-compatible containers orchestration/management systems such as Kubernetes, Rancher, or OpenShift can facilitate the scaling of containerized Rocket.Chat instances make it possible to distribute load among different physical bare-metal servers or virtual machines.
Rocket.Chat's cloud uses this approach to manage cloud-hosted instances with high reliability and flexibility. We leverage the same expertise to provide documentation on configuring and deploying scaled installations.
We require scaled installations (with more than one instance or more than 2000 users) to be orchestrated and managed with one of the following:
- 1.SUSE Rancher
- 2.Red Hat Openshift
- 3.Kubernetes and Helm (Managed by a cloud platform such as AWS, Google Cloud, etc, or self-managed)
At this time, no other container orchestration/management technologies will be supported by our Support team for any issues related to scaled installations.
To learn more about the minimum hardware requirements for deploying Rocket.Chat, see Hardware Requirements.
Production deployments should continually collect metrics regarding the installation's instances and database. Rocket.Chat supports and recommends the industry-standard Prometheus + Grafana monitoring stack. Grafana dashboards are available in the Metrics repository.
Rocket.Chat releases a new version periodically. It is recommended to regularly check the release cycles and ensure that you are using a supported version.