Why I Coded My Own Discord Message Manager

So I have run into some problems recently. Having used Discord for quite some time, I have come across quite a large arrangement of Discord Bots.

They can go from moderation, to gaming and to notification. At the time when I didn't really think much and wasn't interested in them, but having come to self-host more and more software (which is a story for another time), it kind of surprised me that you can self host your own discord bot.

I was naive to think that it would be discord itself hosting your bot, while you instead need to host it yourself or on a VPS.

Hence it came down to hosting a bot by myself for some personal and community use, in this case it would be Zeppelin Bot.

Zeppelin Bot Banner


At first it was easy, I had a VPS (at datalix) that was gifted for me by a dear friend, as I simply ran up the docker compose with the necessary environment variables, I also had to setup a domain for the dashboard and I admit that was a little bit more difficult than I expected, but I got the job done either way by adding a reverse proxy for the SSL certificate.

As time went by, I left it in the back of my mind, that is until the VPS reached it's end of life and would be eliminated, which means that the bot won't be available anymore.

And so I began to find alternatives around it, I tried to get a free VPS on Oracle Cloud, but they were unfortunately unavailable, the only option I had left was to look continuously at the alternatives.

The solution I have come to find came from another friend I have in the same community, in short I managed to find a place to host a Zeppelin bot instance, unfortunately as I tried to load the docker compose (standalone), I once again ran into a problem: the MySQL database decided to not work no matter what.


If it doesn't work, I will simply do it myself at this point.

I tried everything I could to setup the database for Zeppelin, but nothing I tried to do could work as a User (I didn't have root access), which is to write my own version of the tool I need.

Knowing how to use NodeJs, I decided to use Discord.js, even though I could've also used Discord.py I wanted to try and make the application in Discord.js since it has been quite a while since I last made something in NodeJs (considering using Draconic from Avrae to make aliases is basically using Python).

I have to admit that the creation of the bot wasn't really enjoyable, since some part of the documentation were lacking unfortunately, as I couldn't find if some of the objects actually contained the classes I needed or not (for example the client item from the Interaction class, or the channel class), I actually had to look them up from StackOverflow, since navigating the documentation was such a pain.

BUT, in the end I did manage to accomplish the goal I had in mind, as I created Haussia, she is supposed to act as a unified POST, PUT, DELETE method client for moderation messages, for when you want to edit a message (maybe a rule, or an announcement) sent by someone else and you don't want to disturb them.

Haussia herself is quite simple for now, as it only has 3 main commands:

  • /send
  • /edit
  • /delete

And a debugging command (/ping), she also supports using prefixes to send the messages (default prefix being h! + the command's name), and the main commands can only be accessed by those with admin access or role (the PermissionFlagsBits.Administrator or Administrator flag).

I plan to add more features or commands to Haussia in future if I ever need them or if I ever get enough time, but for now she works as intended (feel free to contribute and help me on CodeBerg!).

Comments