Skip to content

raidensakura/modmail

 
 

Repository files navigation


A Modmail fork with a focus on improvements and bug fixes.

MIT License Support

Why hard fork?

Modmail has quite a few significant problems with its feature implementations, ranging from improper Discord sticker support down to suboptimal user blocking feature. Inevitably, fixing these fundametal issues required backward-incompatible fixes and since Modmail is rather slow on updates, I decided to turn this into a public hard fork for other user's benefits and for the spirit of FOSS.

Important disclaimer: This fork is neither supported nor endorsed by the Official Modmail team. Do not ask the official support team if you have issues on this forked version. Since most of the modifications implemented are backward-incompatible, I will not be responsible for the damage caused to your Modmail instance by using this fork.

Installation

This is a general installation guide for developers. Refer to the documentation for user guide.

This guide assumes you have installed git, a compatible Python version and Poetry installed.

  1. Clone the repository
    $ git clone https://github.com/raidensakura/modmail
    $ cd modmail
  2. Create a Discord bot account, grant the necessary intents, and invite the bot.
  3. Create a MongoDB database and a user for the bot to connect to.
  4. Rename the file .env.example to .env and fill it with appropriate values.
  5. Install the Python dependencies and run the bot.
    $ poetry install --no-root
    $ poetry run python bot.py
  6. [Optional] Load the logviewer plugin with [p]plugin load raidensakura/modmail-plugins/logviewer@main

Running the Docker Image

This guide assume you already have Docker or Docker Compose installed.

  • Running with docker:
    $ docker run --env-file=.env --name=modmail ghcr.io/raidensakura/modmail:stable
  • Running with Docker Compose:
    $ docker compose up -d

Support & Issues

This is mainly maintained by @raidensakura, issues and support questions can be raised via Discord Server or GitHub Issues.

Contributing

Check out the contributing guidelines before you get started.

The develop branch is where most of the features are tested before stable release.

This project has included pre-commit script that automatically run black and ruff linter on every commit.

  1. Install development dependencies.
    $ poetry install --no-root --only dev
  2. Install the pre-commit hook.
    $ poetry run pre-commit install

Alternatively, you can also lint the codebase manually

$ poetry run black .
$ poetry run ruff .

Languages

  • Python 99.8%
  • Other 0.2%