diff --git a/README.md b/README.md index ca7fa59..7b44191 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,23 @@ A playful Discord bot that sends random praises and (occasionally) a conspiracy ## Setup +### Create a Discord Bot + +> [!WARNING] +> Discord updates frequently -- if any steps seem outdated, refer to the official docs: +> https://discord.com/developers/docs/intro + +1. Log into Discord. +2. Go to [Discord Developer Portal](https://discord.com/developers/applications) +3. Click "New Application", give it a name, and create it. +4. In the sidebar, go to Bot, click "Add Bot". +5. Under OAuth2 > URL Generator: + 1. Select "bot" scope. + 2. Under Bot Permissions, check at least: + - Send Messages +6. Use the generated URL to invite the bot to your server. +7. In the Bot tab, click "Reset Token", copy the token and save it in your `.env` (view next step). + ### Configuration Create a `.env` file in the root of your project with the following keys: @@ -21,8 +38,37 @@ Create a `.env` file in the root of your project with the following keys: - `CONSPIRACY_PROBABILITY`: Probability (from 0.0 to 1.0) that a conspiracy message is sent after a praise. Eg, 0.4 = 40% chance. -You can view the [.env-sample](./.env-sample) as an example. +You can view the [.env-sample](./.env-sample) as an example completed template. + +### Install + Run + +#### Vanilla (Local Dev) + +1. Install Go via https://go.dev/doc/install +2. Install Make if you don't have it via https://www.gnu.org/software/make/ +3. Run: + ```bash + make # builds the bot + ./bin/bot # starts the bot + ``` + +#### Docker + +> We maintain a ghcr image at ghcr.io/the-programmers-hangout/swiftspiracy-bot:latest + +1. Pull the image: + ```bash + docker pull ghcr.io/the-programmers-hangout/swiftspiracy-bot:latest + ``` +2. Run it with your `.env` file: + ```bash + docker run --env-file ./.env ghcr.io/the-programmers-hangout/swiftspiracy-bot:latest + ``` ## Notes - The bot gracefully shuts down on CTRL+C. +- Conspiracy messages are deleted after a short delay to keep the mystery alive, you should configure it to be low. +- Messages are sourced from [praises.json](./cmd/bot/praises.json) and + [conspiracies.json](./cmd/bot/conspiracies.json). If your timings for message are too short for the duration the bot + runs, the messages will repeat.