Cyber Discovery Discord Bot

Build Status Build Status Discord GitHub Python 3.8.x

The bot for the Cyber Discovery Community Discord Server!


Creating a Bot Token

First, head over to the Discord Developer Portal and create an application. Set a name, then go to the bots tab (on the left) and add a new bot. For testing purposes, it is best to have the bot private, so untick the Public Bot option.

You should then get the client ID of your bot and put it into this URL to join it to your Discord server:<insert client id here>&scope=bot&


Kubernetes is the intended environment for running the Bot, as it allows for the deployment of a pre-configured environment which can be defined in code. To run Kubernetes on your computer you can use Minikube or deploy Kubernetes properly on a server.

Once you have installed Kubernetes you need to create the secret which will contain the bot token and database credentials.

kubectl create secret generic creds --from-literal BOT_TOKEN=<Discord Bot Token> --from-literal PGHOST=postgres --from-literal PGPORT=5432 --from-literal PGDATABASE=cyberdisc-db --from-literal PGUSER=postgres --from-literal PGPASSWORD=<Postgres Password> --from-literal SENTRY_URL=<Sentry URL> --from-literal DEPLOY=<Anything>

These settings will then be distributed to the containers when you create them like this:

kubectl apply -f

Bare Metal

You can also locally install the bot on your system. First install the dependencies with Poetry:

curl -sSL | python
poetry install

Or on Windows:

(Invoke-WebRequest -Uri -UseBasicParsing).Content | python
poetry install

If you don't already have the required Python version (currently 3.7.2) installed, install pyenv before running the above commands.

You will then need to set the bot token as an environment variable:

export BOT_TOKEN="<insert bot token here>"

Or on Windows:

set BOT_TOKEN="<insert bot token here>"

Finally, run the command poetry run cdbot in the root of the repository to run the bot on your machine. To access admin commands of the bot, set the environment variable ROOT_MEMBERS_ID to the ID of your administrators group.


General Commands

Admin Commands

Cyber Discovery Commands

Fun Commands

Maths Commands