Skip to content

raidensakura/modmail

 
 

Repository files navigation


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

Dynamic TOML Badge Dynamic TOML Badge Docker Pulls GitHub 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 / PDM 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 project dependencies and run the bot.
    • Using Poetry:

       $ poetry install --no-root
       $ poetry run python bot.py
    • Using PDM:

       $ pdm install
       $ pdm 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 .

Packages

 
 
 

Languages

  • Python 99.8%
  • Other 0.2%