juniorguru / chick

A real-time, synchronous Junior Guru Discord bot
https://juniorguru-chick.fly.dev/
GNU Affero General Public License v3.0
2 stars 0 forks source link
discord discord-bot

Chick 🐤

A real-time, synchronous junior.guru Discord bot.

Features

All junior.guru automation happens asynchronously (with up-to-24h delay) in the main monolith codebase, except of the following tasks provided by this bot:

Please, update the above list if adding features.

Design decisions

The original, asynchronous bot installs and uses this codebase to run the same code and perform the same tasks, idempotently:

Installation

  1. You'll need poetry installed.
  2. Clone this repository: git clone git@github.com:juniorguru/chick.git
  3. Go to the project directory: cd chick
  4. Install the project: poetry install

Development

Running locally:

Useful commands:

Deployment

The bot is deployed to fly.io. Everything related to deployment is in the Dockerfile. There's also fly.toml, but that's something the flyctl has generated and only they know what it is good for.

There is no need to deploy this bot manually. Everything merged to the main branch of the GitHub repo gets automatically deployed to Fly.

For this to work, the output of flyctl auth token must be set as FLY_API_TOKEN secret in the GitHub repo settings. The rest of the setup is in .github/workflows/build.yml.

If you insist to deploy manually from your local machine, follow these steps:

Inspired by Hosting a Python Discord Bot for Free with Fly.io by Jonah Lawrence.

License

AGPL-3.0-only, copyright (c) 2024 Jan Javorek, and contributors.