RocketChat is the Worst

Ok. I’ve tried it. I’ve attempted to run a RocketChat server on digital ocean for a few years now. My goal was to provide an easy to use alternative to our families group text messages. Group text messages are terrible, they are unorganized, and often times people are left out of the conversation or added into the middle and left wondering “what the heck is going on?!”

I’d remembered looking into RocketChat years ago and decided to give it a try. My family was excited to try this new approach to communication. Right off the bat there was an issue. One of our family members attempted to change their profile picture via the RocketChat app. It didn’t work. So they decided not to use the program, just like that. I’ll say it again, in their first experience with RocketChat, it didn’t work, so they would not use it.

The rest of my family was more forgiving of the program. However, they too had issues. RocketChat was unreliable. My family members would find that they’d been logged out of the app, and so were not getting notifications. They’d have to log back in periodically. That’s annoying for them. So, I lost a few more users.

In addition to these issues, the RocketChat server will randomly stop. The result is that the app and web site will respond with Bad Gateway… Or just not load. I have to then ssh into the server to attempt to restart the service. Sometimes a simple reboot does the trick, other times I have to literally navigate to the RocketChat server directory and manually install npm packages. That’s crazy!

This morning I woke up early to work on a personal project I’ve been excited to work on. However, I spent all of my time trying to figure out how to get RocketChat up and running again. And, after a couple of hours of work, RocketChat still won’t start, and I’ve run out of the time that I had to work on my personal project, I spent it all on RocketChat. That’s incredibly frustrating.

So. I’m pretty much done with RocketChat. I won’t recommend anyone use it. It’s not worth the time investment required. It’s not user friendly. It’s the worst.

RocketChat server not running. Cancelling

As you might know, I’ve set up a RocketChat server recently on Digital Ocean. So far it’s been working great. An update every once and a while is all it needs.

However, yesterday, I attempted an update that failed. From then on every attempted update resulted in “RocketChat server not running. Cancelling”. This was very frutrating.

First, a few commands to try that might help:

  1. systemctl restart rocketchat.service – This will start your RocketChat server in case it is stopped.
  2. systemctl status rocketchat.service – Use this command to check the results of the previous command. Typically this will report that the service is “Active” if the previous command was successful.

In my case, the second command resulted in a “failed” state. The command itself gave me some information as to what the failure was, but not a lot of context as to what caused the failure. However, it did show me the process that it attempted to run. It said, ExecStart=/opt/nvm/versions/node/v14.19.3/bin/node /opt/Rocket.Chat/main.js (code=exited, status=1/FAILURE).

Alright! We’re getting somewhere. With that I was able to figure out what command failed and where that command was run. I navigated directly to the /opt/Rocket.Chat directory which was where the failure was occurring. From here I ran node main.js. The results of this command were much more helpful. They told me this, Error: Cannot find module '@meteorjs/reify/lib/runtime'. That looks like an issue with npm dependencies.

So, I poked around the Rocket.Chat directory structure and looked for dependencies for the Rocket.Chat server. I found what I was looking for in the /opt/Rocket.Chat/programs/server directory.

From this directory I ran two commands

  1. npm install
  2. npm ci

Afterwards I attempted to start the RocketChat server again using the systemctl restart rocketchat.service command. I checked it with systemctl status rocketchat.service and found that it was working now! RocketChat was back to running normally. The problem with “RocketChat server not running. Cancelling” was gone!

Getting Started with Rocket Chat Using Digital Ocean Backing

Note – RocketChat is making moves to severely limit their PAAS offering. They have baked in a bunch of limitations in the codebase and now claim that if you self-host you are using their “free version” ?


RocketChat (https://rocket.chat) is a chatting tool similar to MatterMost and Slack. It offers a self-managed community edition as well as some paid plans and is in active development. I’m just learning how to use it, so I’m planning on documenting my journey here.

I installed and set up RocketChat installed in a matter of minutes. The QuickStart guide, though short, includes most of what you need to get up and running.

To get started with your RocketChat instance on DigitalOcean you need to:

  1. Create a DigitalOcean account
  2. Install RocketChat
  3. Create an A Record that points to your Digital Ocean Droplet. *
  4. Setup your Let’s Encrypt certificate.
    rocketchatctl configure --lets-encrypt --root-url=YOUR_DOMAIN --letsencrypt-email=YOUR_EMAIL
  5. Update your RocketChat installation. Run the following commands from your droplet command line interface.
    1. Run sudo rocketchatctl upgrade-rocketchatctl
    2. Run sudo rocketchatctl update

* I use Cloudflare to host my DNS. In this case I had to disable the proxying on the A Record in order to allow RocketChat to work correctly.

Now visit your site (you should not run into any problems) and create your administration account.

One Note

From time to time the Rocket Chat server responds with “Bad Gateway”. I’m not sure exactly why. However, a DigitalOcean droplet can be restarted by using the reboot command from the command line interface.