> Source: https://meetrix.io/blogs/setup-rocketchat-aws-ami/
> Markdown copy of that page. Cite the URL above, not this file.

Development

# Rocket Chat Hosting on AWS: Self-Host Rocket.Chat with a Pre-Configured AMI

[By Kelum Sampath](https://meetrix.io/blogs/authors/kelum-sampath/) • October 13, 2026 • 15 min read

Revised by

-   ![Portrait of Hiruna Kumara, Senior DevOps Engineer at Meetrix](https://meetrix.io/blog-images/assets/authors/hiruna-kumara.webp)[Hiruna Kumara](https://meetrix.io/blogs/authors/hiruna-kumara/)Senior DevOps Engineer, Meetrix

This article was reviewed and refreshed for accuracy. Last reviewed October 2026.

Rocket chat hosting comes down to three options. Rocket.Chat hosts it for you in their cloud, you build a server by hand, or you launch an image that already has everything installed. Meetrix's AWS AMI is the third kind: Rocket.Chat 8.4.2 on Ubuntu 24.04, MongoDB backed up to an S3 bucket you choose, and SSL from Let's Encrypt when your domain lives on Route 53. The CloudFormation stack takes 5-10 minutes to come up.

Self-hosting Rocket.Chat isn't unlimited, though. The free plans cap users, and that catches teams out a few months in. That part is covered under [limitations](#limitations) below, before you commit.

| At a glance | Rocket.Chat AMI by Meetrix |
| --- | --- |
| Version | Rocket.Chat 8.4.2 on Ubuntu 24.04 |
| Database | MongoDB on the same instance, backed up to S3 |
| Recommended instance | t3.small to start (see sizing below) |
| SSL | Automatic with Route 53, one script otherwise |
| Setup time | 5-10 minutes for the stack |
| Free trial | 5 days on AWS Marketplace |

## What is Rocket.Chat?

Rocket.Chat is an open-source team chat platform: channels, direct messages, threads, file sharing, and an omnichannel inbox for customer conversations from your website or other messaging apps. Video calls come through integrations, Jitsi and BigBlueButton on the free Community plan. It's a Node.js app with MongoDB as its database, and the code is on [GitHub](https://github.com/RocketChat/Rocket.Chat).

The reason to self-host it is simple: the chat history sits on a server you control, not in someone else's SaaS.

### Related Article

[

Rocket.Chat Developer Guide

Explore our comprehensive developer guide for Rocket.Chat, covering advanced configurations, API usage, and best practices for self-hosting on AWS.

Meetrix.IO • Kelum Sampath

![Rocket.Chat Developer Guide](https://meetrix.io/blog-images/paas-dev-guides/how-to-setup-rocket-chat/how-to-setup-rocket-chat.png)](https://meetrix.io/blogs/rocketchat-dev-guide/)

## Rocket chat self hosted on AWS: what the AMI sets up

A manual install means Ubuntu, Docker or Node.js, a MongoDB replica set, a reverse proxy, certbot and a backup job, all wired together before anyone sends a message. The CloudFormation stack does that part:

-   Rocket.Chat and MongoDB on one EC2 instance, inside a new VPC and subnet (10.0.0.0/16 and 10.0.0.0/24 by default)
-   A Let's Encrypt certificate requested automatically when the domain is hosted on Route 53
-   MongoDB backups going to the S3 bucket you name in the `S3Bucket` parameter
-   SSH restricted to the range you set in `SSHLocation`
-   Billing on your normal AWS invoice: the EC2 instance plus an hourly software fee, after a 5-day trial

What it doesn't do: high availability. It's one instance. If that's a requirement, Rocket.Chat's own docs move you to multiple MongoDB replicas and, past about 5,000 concurrent users, to microservices on Kubernetes.

## How to set up Rocket.Chat on AWS

1.  Open the [Rocket.Chat listing on AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-tkzfbm3is3ino), click "Continue to Subscribe" and accept the terms.
2.  Click "Continue to Configuration", pick "CloudFormation Template" and your region, then "Continue to Launch" and "Launch CloudFormation".
3.  Fill in the stack parameters: a stack name, `Admin Email` (used for the certificate), `DeploymentName`, `DomainName`, `InstanceType`, your EC2 `keyName`, and the `S3Bucket` for MongoDB backups. The default `SSHLocation` is 0.0.0.0/0; set it to your own IP range instead.
4.  Tick the IAM acknowledgement, submit, and wait 5-10 minutes. A vCPU limit error on a new account means you need a [vCPU quota increase](https://meetrix.io/blogs/increase-aws-vcpu-quota/) first.
5.  Copy `PublicIp` from the stack's Outputs tab and point your domain's A record at it in Route 53.
6.  Open `DashboardUrl` from the Outputs tab. A 502 Bad Gateway just means Rocket.Chat is still starting, so give it about 5 minutes. Rocket.Chat's setup wizard then walks you through creating the first admin account.

[Read More for additional Guides >>](https://meetrix.io/blogs/rocketchat-dev-guide/)

### Rocket chat server sizing

t3.small is the recommended starting point, and for a trial it's fine. Just remember that on this AMI Rocket.Chat and MongoDB share that box's 2 GiB of memory. Rocket.Chat's [system requirements](https://docs.rocket.chat/docs/system-requirements) ask for 2 vCPU and 4 GiB for Rocket.Chat alone up to 500 concurrent users, with MongoDB sized separately. So for a team that keeps it open all day, start at t3.medium and resize from there. Changing the instance type later is a stop, change, start in the EC2 console.

### Rocket chat SSL

If the domain is on Route 53, the certificate is issued during stack creation. If it isn't, or the automatic attempt fails, SSH in and run the standalone script:

```bash
ssh -i <your key name> ubuntu@<Public IP address>
sudo /root/certificate_generate_standalone.sh
```

## Rocket chat on premise, Rocket.Chat Cloud, or your AWS account

|  | Rocket.Chat Cloud | On premise | AMI on your AWS account |
| --- | --- | --- | --- |
| Who runs the server | Rocket.Chat | You, on your hardware | You, on EC2 |
| Where the data lives | Rocket.Chat's cloud | Your data center | Your AWS account and region |
| Setup effort | Sign up | Docker or Kubernetes install, MongoDB, proxy, SSL | One CloudFormation stack |
| Updates | Handled for you | Yours | Yours, by launching the newer AMI version |
| Air-gapped option | No | Yes, on paid plans | No |

On premise makes sense when the chat can't touch a public cloud at all. Otherwise a VM in your own AWS region gets you the data control without the hardware. Rocket.Chat's [plans page](https://docs.rocket.chat/docs/our-plans) lists which features need a paid plan in each setup.

### Rocket chat self hosted limitations

The AMI doesn't change Rocket.Chat's licensing. The same plan limits apply wherever it runs:

-   **Starter** is free up to 50 users. At the cap you can't add anyone new; existing users and history stay.
-   **Community** is MIT licensed and free up to 100 concurrent users, with 10,000 push notifications a month. Rocket.Chat itself says it isn't meant for business-critical production.
-   Upgrades are on you, and they have an order. Rocket.Chat 8.x needs MongoDB 8.0 or later, and MongoDB has to be upgraded first.
-   Backups go to S3 automatically, but test a restore once. A backup you've never restored is a hope, not a backup. For MongoDB-specific options, see our [MongoDB backup guide for AWS](https://meetrix.io/blogs/mongodb-aws-backup/).

## Where Rocket.Chat fits next to Slack and Mattermost

Slack has no self-hosted option, so if the reason you're here is keeping chat history on your own servers, it's really Rocket.Chat against Mattermost. Rocket.Chat leans toward customer-facing work with its omnichannel inbox. Mattermost leans toward engineering teams and DevOps workflows. We compare the two properly in [Rocket.Chat vs Mattermost](https://meetrix.io/blogs/rocketchat-vs-mattermost/) and, for the team-chat angle, in [our Rocket.Chat vs Mattermost team chat comparison](https://meetrix.io/blogs/rocket-chat-vs-mattermost-team-chat/). If Slack is still in the running, read [Mattermost vs Slack](https://meetrix.io/blogs/mattermost-vs-slack/) too, or see the wider field in our [self-hosted Microsoft Teams alternatives](https://meetrix.io/blogs/self-hosted-microsoft-teams-alternatives/).

## Rocket.Chat REST API and integrations

Everything in the web client is also available through the REST API. For scripts and bots, create a personal access token under your account settings (the role needs permission for it) and send it with your user ID in the `X-Auth-Token` and `X-User-Id` headers. Use HTTPS only, since the token is as good as a password. The API is rate limited, and the limits are adjustable in the admin panel.

API Documentation

-   REST API: [Read More >>](https://developer.rocket.chat/reference/api/rest-api?ref=meetrix.io)
-   Livechat Realtime API: [Read More >>](https://developer.rocket.chat/reference/api/livechat-api?ref=meetrix.io)
-   Deprecated Endpoints: [Read More >>](https://developer.rocket.chat/reference/api/deprecated-endpoints?ref=meetrix.io)

## Frequently Asked Questions

Can I deploy Rocket.Chat on a small team server with minimal DevOps?

Yes. The AMI launches Rocket.Chat and MongoDB on one EC2 instance through a CloudFormation stack, with SSL and S3 backups set up for you. It doesn't scale automatically, though. When the team grows, you stop the instance and move it to a bigger instance type.

Is Rocket.Chat self hosted free?

The software can be. Rocket.Chat's Community edition is MIT licensed and free up to 100 concurrent users, and the Starter plan is free up to 50 users. On AWS you still pay for the EC2 instance, plus the AMI's hourly software fee after the 5-day free trial.

What are the limitations of Rocket.Chat self hosted?

Two kinds. Plan limits: Starter stops at 50 users, Community at 100 concurrent users and 10,000 push notifications a month. Operational limits: you own updates, MongoDB upgrades and backups, and a single instance has no high availability.

What instance size does a Rocket.Chat server need?

t3.small (2 vCPU, 2 GiB) is the recommended starting point and is fine for a trial. Rocket.Chat's own guidance for up to 500 concurrent users is 2 vCPU and 4 GiB for Rocket.Chat alone, so a team using it all day should start at t3.medium or larger.

How does Rocket.Chat SSL work on the AMI?

If your domain is hosted on Route 53, the stack requests a Let's Encrypt certificate automatically using the Admin Email you entered. If that fails, SSH into the instance and run sudo /root/certificate\_generate\_standalone.sh to generate the certificate manually.

Does Rocket.Chat need MongoDB?

Yes, MongoDB is Rocket.Chat's only supported database. Rocket.Chat 8.x requires MongoDB 8.0 or later. The AMI ships both on the same instance and backs MongoDB up to the S3 bucket you name in the stack parameters.

Rocket.Chat on premise or Rocket.Chat Cloud?

Rocket.Chat Cloud is hosted and maintained by Rocket.Chat, so there's nothing to patch. On premise, or on your own AWS account, the data stays on infrastructure you control, which matters for data residency and air-gapped setups. You trade convenience for control.

How do I update Rocket.Chat on the AMI?

When Meetrix publishes a newer version on AWS Marketplace, back up your data, delete the old stack and launch the new version. For Rocket.Chat 8.x, MongoDB must already be on 8.0 before the Rocket.Chat upgrade.

Meetrix Store

Rocket.Chat

Messaging, calls and omnichannel support

[Deploy it](https://meetrix.io/store/rocket-chat/)

Meetrix Store New

Deploy what this guide covers, pre-configured.

-    [Rocket.Chat Messaging, calls and omnichannel support](https://meetrix.io/store/rocket-chat/)
-    [Mattermost Team chat, a self-hosted Slack alternative](https://meetrix.io/store/mattermost/)
-    [Jitsi Meet Self-hosted video calls for 50 to 500 users](https://meetrix.io/store/jitsi-meet/)
-    [RustDesk Remote desktop AMI, a TeamViewer alternative](https://meetrix.io/store/rustdesk/)
-    [Coturn TURN/STUN for WebRTC, no per-minute relay fees](https://meetrix.io/store/coturn/)
-    [Plane Issues, cycles and roadmaps, a Jira alternative](https://meetrix.io/store/plane/)

[Browse all products](https://meetrix.io/store/)
