This is my personal fork of chamburr/modmail, the open-source bot behind modmail.xyz.
Just to be clear, this isn't affiliated with or endorsed by the actual ModMail team in any way. It's my own side project, not an official build. If you want the real thing, go grab it from the upstream repo or check out modmail.xyz. Our Discord server is the place for support on the actual bot.
The base bot works exactly like upstream (tickets, replies, snippets, all that). On top of it I added:
| Feature | What it does |
|---|---|
| Ticket tagging | Label tickets (bug, billing, abuse, etc.) so they're easier to sort through |
| Auto-close | Tickets that go quiet for a while close themselves automatically |
| Webhook alerts | Sends a Discord webhook message whenever a ticket gets created, tagged, or auto-closed |
| Ops monitoring | A watchdog service that keeps an eye on container health, queue depth, DB connections, and flags anything that looks off. Feeds a little dashboard so I can actually see what's going on |
I trimmed this down to five containers for local dev, dropped the official web dashboard and API since I didn't need them:
| Service | What it's for |
|---|---|
bot |
The actual bot logic (Python) |
dispatch |
Handles the gateway connection. Running tigefa/twilight-dispatch instead of the official image since I'm on Apple Silicon and the official one doesn't have an arm64 build. Community image, local dev only |
postgres |
Database |
redis |
Caching |
rabbitmq |
Queue between the bot and dispatch |
watchdog |
Mine, polls stats and logs stuff when something looks broken |
ops-api |
Mine, small FastAPI service that serves the watchdog's data to the dashboard |
npm install
Threw together a React dashboard that polls ops-api every 30s and shows live stats per container. Doesn't run in Docker, just run it separately:
cd dashboard
npm run devIt points at http://localhost:8000 for the API by default, check dashboard/.env if you need to change that.
cp .env.example .env
# fill in your bot token and the rest
cd docker
docker compose up -dAll the real work here is chamburr's, I just built some stuff on top of it. License terms are in LICENSE, and the upstream repo is for anything core to the bot itself.
