HoloBot Discord

Small Discord bot made on Py-Cord

License: GPL Code style: black

Installation from release

  1. Install MongoDB using the official installation manual
  2. Install Python 3.11+
  3. Download the latest release's archive
  4. Extract the archive
  5. Navigate to the extracted folder and subfolder Discord in it
  6. Create a virtual environment:
    python -m venv .venv or virtualenv .venv
  7. Activate the virtual environment:
    Windows: .venv\Scripts\activate.bat
    Linux/macOS: .venv/bin/activate
  8. Install the dependencies:
    python -m pip install -r requirements.txt
  9. Run the bot with python main.py after completing the configuration

Installation with Git

  1. Install MongoDB using the official installation manual
  2. Install Python 3.11+
  3. Clone the repository:
    git clone https://git.end-play.xyz/HoloUA/Discord.git
  4. cd Discord
  5. Create a virtual environment:
    python -m venv .venv or virtualenv .venv
  6. Activate the virtual environment:
    Windows: .venv\Scripts\activate.bat
    Linux/macOS: .venv/bin/activate
  7. Install the dependencies:
    python -m pip install -r requirements.txt
  8. Run the bot with python main.py after completing the configuration

Upgrading with Git

  1. Go to the bot's directory
  2. git pull
  3. Activate the virtual environment:
    Windows: .venv\Scripts\activate.bat
    Linux/macOS: .venv/bin/activate
  4. Update the dependencies:
    python -m pip install -r requirements.txt
  5. First start after the upgrade must initiate the migration:
    python main.py --migrate
  6. Now the bot is up to date and the next run will not require --migrate anymore

Configuration

There's a file config_example.json which contains default configuration and should be used as a base config.

Copy this file to config.json and open it with any text editor of your liking.

Modify the newly created configuration file to fit your needs.

Mandatory keys to modify:

  • guild
  • bot.owner
  • bot.bot_token
  • database.*
  • categories.*
  • channels.*
  • roles.*

After all of that you're good to go! Happy using :)

Caching

Although general database access speed is fast, caching might become helpful for bigger servers with many bot interactions. Currently, Redis and Memcached are supported.

Configuration happens through the config key caching.

Set caching.type to the service of you choice ("redis" or "memcached") and then update the URI to access the service. It's Redis' default URI format for Redis and "address:port" for Memcached.

Which one should I choose?

Service Read/write speed Config flexibility
Redis High Very flexible
Memcached Very high Basic

Performance difference between Redis and Memcached is generally quite low, so your setup should normally depend more on the configuration flexibility than on raw speed.

Debugging

There's a config key debug that can be set to true for debugging purposes.

It should be set to false in production, otherwise log becomes very verbose and might contain data that shouldn't normally be logged.

Docker [Experimental]

As an experiment, Docker deployment option has been added.

Building the image

  1. git clone https://git.end-play.xyz/HoloUA/Discord.git
  2. cd Discord
  3. docker build -t holoua-discord .

Starting the bot

  1. Install MongoDB using the official installation manual
  2. Download the configuration example file and store it somewhere you would like your bot to access it
  3. Complete the configuration step for this file
  4. docker run -d -v /path/to/config.json:/app/config.json holoua-discord
Description
Bot that handles welcome messages and does utility stuff
Readme 378 KiB
v0.3.0 Latest
2025-02-16 18:47:30 +02:00
Languages
Python 98.8%
Dockerfile 1.2%