Sentinel is a Discord bot and Admin Panel built for running one server well. It focuses on moderation, tickets, verification, automation, and the staff tools that go with them.
This project is meant for a single community per deployment, not a public multi-server bot.
- Moderation tools, logging, anti-raid checks, and case tracking
- Tickets, verification, analytics, and staff workflows
- Leveling, utilities, music, and join-to-create voice channels
- A web-based Admin Panel for settings, insights, and account-linked access
- Node.js 18+
- MySQL
- A Discord application with privileged gateway intents enabled
-
Install dependencies.
npm install
-
Fill out
Config/credentials.env. Required bot values:BOT_TOKEN,CLIENT_ID,GUILD_ID,MYSQL_HOST,MYSQL_PORT,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASEIf you want Discord account linking in the panel, also set:
DISCORD_OAUTH_CLIENT_SECRETFor production panel setups, also set:
ADMIN_PORT,ADMIN_ORIGIN,ADMIN_ALLOWED_HOSTS -
Update the server config files.
Config/main.jsonConfig/constants/*.jsonConfig/presence.jsonandConfig/backups.jsonif you use those features
-
Start the bot.
npm start
The database schema is created and updated automatically on startup.
-
Start the Admin Panel if you want it.
npm run admin
-
Create a panel account if needed.
npm run account:create
In the Discord Developer Portal, enable these intents for the bot:
- Presence Intent
- Server Members Intent
- Message Content Intent
The Admin Panel now depends much more on linked Discord accounts than older versions did.
- Some panel pages check both the local panel role and the linked Discord account
- OAuth-based linking stays disabled until the required values are set in
Config/credentials.env - In production, your
ADMIN_ORIGINand OAuth redirect URL need to match
index.js- Discord bot entry pointadminPanel.js- Admin Panel entry pointCommands/- slash commands by featureEvents/- Discord event handlersFunctions/- shared helpers and servicesAdminPanel/- panel views, scripts, styles, and assetsConfig/- environment and server-specific configLogging/- logging handlersscripts/- setup and utility scripts
npm start- run the botnpm run admin- run the Admin Panelnpm run account:create- create a panel accountnpm run email:send-all-templates- send email templates for testing
npm test is currently just a placeholder. There is no proper automated test suite configured yet.
- Sentinel is designed for one server at a time
- MySQL is required for most core features
- Some newer systems are still being refined, especially backups and anti-raid tuning.
- If commands are not responding, check your privileged intents
- If command registration fails with Missing Access, make sure the bot was invited with
applications.commands - If panel login or linking fails, double-check your OAuth values and
ADMIN_ORIGIN