How to self host a Rocket.Chat server on NodeChef

Rocket.Chat is free, unlimited and open source communication tool written in Meteor that can be run on your own infrastructure. Running and maintaining a high performance meteor app requires great expertise and considerable commitment of resources. The good thing is NodeChef natively supports the meteor platform since day 1. In this article, we will show you how to host your own server, together with a high performance MongoDB database with oplog support (Required by for performance) and setup your custom domain on NodeChef for as little as $28 per month.

1. Download Rocket.Chat

You do not have to be familiar with Meteor apps to complete this process. The first step is to download on your computer the prebuilt latest version of Rocket.Chat using the link; The link provides you the 0.59.3 version which is the latest as of this writing. In case you want to update your server version, you can always download the latest version by replacing 0.59.3 in the above link with the version you want. You can discover the latest versions from this link.

2. Create the Rocket.Chat app on NodeChef

Sign up for an account on NodeChef. After signing up, log in to your account. From the dashboard, click on Deployments → Deploy App. Type in the application name of your Rocket.Chat server "rocketonnodechef". Select the 512 MB container size. Rocket.Chat requires at least 300MB of memory to run well in production. Under the Database option, select MongoDB and click on Create cluster.

Once your cluster is created, you will be presented with the deployment form. Under platform, select Meteor, under App code, select the file you downloaded in step 1. Click on the Deploy button. Within a minute, your Rocket.Chat server should be up and running and thats it.

Close the deployment form and click on the Task Manager, you should see rocketonnodechef running. Click on App actions → Browse to open your Rocket.Chat.

3. Adding your domain and Free SSL

On the Task Manager, click on App actions → Custom Domains. Enter the domain name you wish to add. NodeChef supports wildcard domains by default. NodeChef requires you validate ownership of your domain by setting a TXT record in your DNS settings.

To setup Free SSL for your domain, follow the tutorial available at this link