Architecture
All the components explained
The bot has many components, but not all of them are necessary to self-host. Below is an overview of all the components and what they do.
Bot
The bot itself only comes with a small set of commands, which is the core module. These are all the commands required to run the bot, which are configuration and some information commands. The core module also provides the API that powers the dashboard and other core functionality.
All other functionality are provided by modules, which are hosted on a central catalog. On startup and a hourly interval, the bot will look for updates or missing modules. The list of modules is set on Flagsmith, so can change during runtime without having to restart the container. Not having to restart the container is useful for minimizing downtime. Instead the bot will download any updates and missing modules, stop the Discord client, do database migrations and restart the client afterwards.
This system makes that updates are very easy, as the core container rarely updates. Updates happen quickly and automated, without having to rely on administrators of slaves in the network to update a container tag.
Last updated