diff --git a/README.md b/README.md index 647df6a..19a4c6a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,54 @@ # QuizBot +Open source Discord bot for quizzes and quest-like events. + +## Installation + +### Dependencies + +- [Python 3.11+](https://www.python.org) +- [MongoDB](https://www.mongodb.com) +- [Redis](https://redis.io)/[Valkey](https://valkey.io) or [Memcached](https://memcached.org) (used for caching, + optional) +- [Git](https://git-scm.com) (only if installing from source) + +### Installation from release + +1. Download the release archive from [Releases](https://git.end-play.xyz/profitroll/QuizBot/releases) +2. Unpack the archive to a folder of your choice +3. Go to the project folder +4. Create a virtual environment: `python3 -m venv .venv` +5. Activate virtual environment: + - Linux: `source .venv/bin/activate` + - Windows (cmd): `.venv/bin/activate.bat` + - Windows (PowerShell): `.venv/bin/activate.ps1` +6. Install requirements: `pip install -r requirements.txt` +7. Copy example config to a real file: `cp config_example.json config.json` +8. Configure the bot (see [Configuration](#configuration)) +9. Start the bot: `python main.py` + +### Installation from source + +1. Clone the repository: `git clone https://git.end-play.xyz/profitroll/QuizBot.git` +2. Go to the project's folder: `cd QuizBot` +3. Continue from step 4 of [Installation from release](#installation-from-release) + +## Configuration + +TODO + +## Upgrading + +TODO + +## Usage + +1. Invite the bot to your server with permissions `137707834448` and `applications.commands` scope. + You can also use the following URL template to invite your bot after replacing `CLIENT_ID` with you bot's client + ID: + `https://discord.com/oauth2/authorize?client_id=CLIENT_ID&permissions=137707834448&integration_type=0&scope=applications.commands+bot` +2. Go to "Server Settings > Integrations > QuizBot" and disable access to admin commands for you default role. + Only admins should have access to following commands: `/config`, `/event`, `/stage` and `/user`. + Allowing access to `/status` is not recommended, however won't do any harm if done so. +3. Configure bot for usage on your server using `/config set` providing all the necessary arguments. + Timezones are compatible with summer time (e.g. `CET` will be interpreted as `CEST` during summer time). \ No newline at end of file