Moderation & case log
Warn, timeout, kick, ban and tempban with a numbered, editable case log
(/history, /case), warning-threshold escalation and an
optional bridge to Discord’s native AutoMod.
Open source · MIT · self-hosted
Sylo runs moderation, leveling, tickets, welcome messages, alerts and 25 more modules from a MEE6-style web dashboard — on your server, in one Docker container, with the data in a single SQLite file you control.
One Node 22 process, one container. A hosted instance you can invite is on the way.
The same ground MEE6, Dyno and Carl-bot cover — configured from a fast, server-rendered dashboard, with no per-feature paywall.
Warn, timeout, kick, ban and tempban with a numbered, editable case log
(/history, /case), warning-threshold escalation and an
optional bridge to Discord’s native AutoMod.
Text and voice XP, role rewards, per-role / per-channel XP multipliers, and all-time / weekly / monthly leaderboards — public page included.
Members DM the bot to open a ticket; staff read and reply from the dashboard as an anonymous “Staff”. Optional retention limit on old transcripts.
Button or Cloudflare Turnstile captcha gate, autoroles, welcome-image cards, leave messages and birthday announcements.
Twitch, YouTube and Kick go-live posts (with cleanup when the stream ends), plus RSS/Atom and Reddit / Mastodon / Bluesky feeds.
Opt-in activity charts — messages, joins/leaves and voice usage over time — plus a
Prometheus /metrics endpoint and a ready-made Grafana dashboard.
Each one is per-server, off by default, and configured on its own dashboard page.
Nothing phones home. State lives in one SQLite file on a volume you mount, snapshotted automatically and optionally shipped off-site to WebDAV or a webhook.
/mydata — any member can export everything Sylo stores about them/forget — and delete it, in that server, on demand
One Node 22 process, one container, no build step. On Unraid it’s in Community
Applications; anywhere else it’s a compose file.
Make a Discord application, copy the token and client ID, enable the Message Content intent.
Drop your secrets into .env and start it. The dashboard comes up on port 3000.
Toggle the modules you want. Optional “Log in with Discord” gates it to your server admins.
git clone https://github.com/Ferdinand99/Sylo
cd Sylo
cp .env.example .env # fill in DISCORD_TOKEN + DISCORD_CLIENT_ID
docker compose up -d # dashboard on http://localhost:3000
Clone it, drop in your bot token, and you're live in a few minutes.