Sentinel is a full‑stack Discord moderation and community platform with a production‑ready bot and a dedicated Admin Panel. It focuses on reliability, clear moderation workflows, and configurable automation so staff teams can run large servers without constant manual work. The bot is designed to run a single server at a time.
- Moderation suite: auto‑mod, logging, anti‑raid tools, and case tracking
- Ticketing system with staff workflows and audit history
- Verification flows, risk scoring, and analytics
- Leveling, community utilities, and quality‑of‑life commands
- Admin Panel dashboard for configuration, insights, and secure tooling
- Music playback with queue controls and reliability fallbacks
- Join‑to‑Create voice channels with ownership transfer and auto‑cleanup
- Node.js v18+
- A MySQL database (most features rely on it)
- A Discord application with privileged gateway intents enabled
- Designed to run one server at a time
- Install dependencies:
npm install
- Configure environment values in
Config/credentials.env.- Required: bot token, client ID, guild ID, and MySQL credentials.
- Optional: Admin Panel OAuth and email settings.
- Update
Config/main.jsonwith your server links and branding (server name, website link, etc.). - Start the bot:
npm start
- Start the Admin Panel (optional):
By default it serves on
npm run admin
http://localhost:3000unlessADMIN_PORTis set.
Sentinel needs privileged intents for moderation, verification, and member workflows.
- Go to the Discord Developer Portal
- Select your application → Bot
- Enable:
- ✅ Presence Intent
- ✅ Server Members Intent
- ✅ Message Content Intent
- Save your changes.
Option 1: Administrator (recommended) This ensures the bot can manage channels for tickets, assign roles, kick/ban users, and delete messages without “Missing Access” errors. 🔗 Invite Bot (Admin)
Option 2: Specific Permissions If you prefer not to grant Administrator, this link requests granular permissions used across modules. 🔗 Invite Bot (Specific)
(Replace YOUR_CLIENT_ID_HERE with your bot’s Client ID.)
- Environment file:
Config/credentials.env- Bot token, client ID, guild ID
- MySQL connection details
- Admin Panel OAuth + email settings (optional)
- Constants:
Config/constants/*.json- Channels, roles, rules, automod policies, leveling, and misc behavior
Sentinel uses MySQL for tickets, moderation history, verification, and analytics.
npm run migrate- Start with
npm run admin. - For production, set
ADMIN_PORT,ADMIN_ORIGIN, andADMIN_ALLOWED_HOSTSinConfig/credentials.env. - Keep OAuth redirect URLs in sync with your Admin Panel origin.
npm start— run the botnpm run admin— run the Admin Panelnpm run migrate— apply DB migrationsnpm run safety:check— run safety checks
- Missing Access when registering commands: ensure the invite link includes
applications.commandsand that your bot is in the correct guild. - Commands not responding: verify privileged intents are enabled in the Developer Portal.
- Admin Panel login issues: confirm OAuth credentials and
ADMIN_ORIGIN.