Skip to content

aymenelouadi/next-generation

Repository files navigation

Bot Discord Dashboard Banner

🤖 Bot Discord Dashboard ALL-IN-ONE

Next Generation — v5.7.1

A full-featured Discord bot with an integrated web dashboard built for modern Discord servers.
Protection · Moderation · Tickets · Embeds Flow Builder · Auto Roles · Levels · Dashboard · and more.

Discord License: MIT Version Node.js discord.js

GitHub Ko-Fi


🗂️ Table of Contents


Important

⚠️ Required Setup Before Starting

After cloning the project, open settings.json and find the DASHBOARD section. You must fill in the following fields or the dashboard/bot will not work correctly:

"DASHBOARD": {
    "OWNERS": ["YOUR_DISCORD_USER_ID"],
    "SHIPS": ["YOUR_DISCORD_USER_ID"],
    "CODE": "YOUR_SECRET_ACCESS_CODE",
    ...
}
Field Description
OWNERS Your Discord user ID(s). Owners have full access to the dashboard. Add multiple IDs as an array.
SHIPS Discord user ID(s) with elevated/super-admin privileges on the dashboard.
CODE The access code required to log into the dashboard (default is "ADMIN"change it!).

How to get your Discord User ID: Enable Developer Mode in Discord → right-click your profile → Copy User ID.


✨ Features

Category Highlights
🛡️ Protection Anti-Ban, Anti-Kick, Anti-Bots, Anti-Webhooks, Anti-Channel Create/Delete, Anti-Role Add/Create/Delete
⚖️ Moderation Ban, Kick, Mute, Warn, Jail, Clear, Lock/Unlock, Slowmode, Rename, Unban All
👋 Welcome & Leave Customizable join/leave/boost messages with image cards and welcome role assignment
Verification Member verification gate with automatic role assignment on completion
👥 Roles Auto-Role (members / bots / invite), Temp Role, Multi-Role, Permission Control
🎟️ Tickets Multi-panel, categories, HTML transcripts, Feedback system, Stats, Ticket Points
🤖 Auto Responder Keyword-triggered auto-replies with exact / contains / regex match modes
Automations Event-driven automation rules triggered by Discord events (joins, roles, reactions, …)
📩 Embeds Builder Visual rich-embed builder with image, thumbnail, fields, footer, and color picker
🧩 Components Builder Drag-and-drop interactive message builder — buttons, select menus, modals; custom ID routing and flow transitions
💡 Suggestions Member suggestion submissions with approve/reject dashboard controls
📈 Levels XP-based leveling system with rank cards, leaderboard, and configurable role rewards
Staff Points Reward staff activity with a points system and leaderboard
💬 Interaction Points Track member engagement (messages, voice) with role-reward thresholds
📊 Activity Stats Hourly guild activity tracking (joins, leaves, messages, voice) with ApexCharts
🔧 Utility Server/User info, Avatar, Banners, Ping, AFK, Help
🌐 Dashboard Discord OAuth2, real-time live editing, guild switcher, full mobile-responsive UI
📝 Logging Full audit log for every moderation and protection action
🌍 Multi-language 11 languages: English, Arabic, French, German, Spanish, Russian, Portuguese, Hindi, Bengali, Urdu, Chinese

📦 Requirements


🚀 Quick Start — Local (VS Code)

Step 1 — Clone the repository

git clone https://github.com/aymenelouadi/Bot-Discord-Dashboard-ALL-IN-ONE---Next-Generation.git
cd "Bot-Discord-Dashboard-ALL-IN-ONE---Next-Generation"

Step 2 — Install dependencies

npm install

Step 3 — Configure environment

# Windows
copy .env.example .env

# Mac / Linux
cp .env.example .env

Open .env in VS Code and fill in your values:

DISCORD_TOKEN=your_bot_token_here
CLIENT_ID=your_application_client_id
CLIENT_SECRET=your_oauth2_client_secret
QAUTH_LINK=http://localhost:2000/auth/discord/redirect
DASHBOARD_PORT=2000
SESSION=any_random_long_string_here

Where to find these values:

  1. Go to Discord Developer Portal
  2. Select your application → Bot tab → copy the Token
  3. General Information tab → copy Application ID (CLIENT_ID)
  4. OAuth2 tab → copy Client Secret and add the redirect URL

Step 4 — Configure the bot

Edit settings.json to set your prefix, language, and other options:

{
  "system": {
    "PREFIX": "!",
    "COMMANDS": {
      "ENABLE_PREFIX": true,
      "ENABLE_SLASH_COMMANDS": true,
      "STATUS": "ONLINE",
      "lang": "en"
    }
  }
}

Step 5 — Start

# Start the bot (also starts the dashboard automatically)
npm start

Open your browser at http://localhost:2000 to access the dashboard.

VS Code tip: Press Ctrl+Shift+PTasks: Run Task → create a npm: start task, or simply open a terminal and run npm start.


🐦 Hosting on Pterodactyl

Pterodactyl is a game/application panel often used by Discord bot hosts.

Step 1 — Upload files

  1. Zip the entire project folder (excluding node_modules/ and .env).
  2. Upload the zip to your Pterodactyl server's File Manager.
  3. Unzip it in the root of your server directory.

Step 2 — Set Startup Command

In your Pterodactyl egg settings, set the startup command to:

node index.js

Or if you are using a Node.js egg:

Field Value
Startup node {{MAIN_FILE}}
Main File index.js
Node.js version 20

Step 3 — Set Environment Variables

In the Pterodactyl panel → Startup tab, add these variables:

Key Value
DISCORD_TOKEN Your bot token
CLIENT_ID Your application client ID
CLIENT_SECRET Your OAuth2 client secret
QAUTH_LINK https://yourdomain.com/auth/discord/redirect
DASHBOARD_PORT 2000 (or whatever port your egg exposes)
SESSION A long random string

Step 4 — Allocations / Port

Make sure port 2000 (or your chosen DASHBOARD_PORT) is allocated and exposed by your host.

Step 5 — Start the server

Click Start in the Pterodactyl panel. The bot and dashboard will launch together.


🐳 Docker

# Build the image
docker build -t bot-dashboard .

# Run (replace values with your real credentials)
docker run -d \
  -p 2000:2000 \
  -e DISCORD_TOKEN=your_token \
  -e CLIENT_ID=your_client_id \
  -e CLIENT_SECRET=your_client_secret \
  -e QAUTH_LINK=http://localhost:2000/auth/discord/redirect \
  -e DASHBOARD_PORT=2000 \
  -e SESSION=your_session_secret \
  --name my-bot \
  bot-dashboard

Or use Docker Compose — create a docker-compose.yml:

version: "3.9"
services:
  bot:
    build: .
    ports:
      - "2000:2000"
    environment:
      DISCORD_TOKEN: your_token
      CLIENT_ID: your_client_id
      CLIENT_SECRET: your_client_secret
      QAUTH_LINK: http://localhost:2000/auth/discord/redirect
      DASHBOARD_PORT: 2000
      SESSION: your_session_secret
    restart: unless-stopped
docker compose up -d

⚙️ Configuration

.env — Secrets

Variable Description
DISCORD_TOKEN Your bot's token (keep this private)
CLIENT_ID Discord Application ID
CLIENT_SECRET OAuth2 secret for the dashboard login
QAUTH_LINK OAuth2 redirect URL (must match Discord dev portal)
DASHBOARD_PORT Port for the web dashboard (default: 2000)
SESSION Random secret string for session encryption

settings.json — Guild Configuration

Key Description
system.PREFIX Bot command prefix (default: !)
system.COMMANDS.lang Language: en or ar
system.COMMANDS.STATUS Bot status: ONLINE, IDLE, DND, INVISIBLE
actions.* Per-command role permissions and toggles
court.* Court/complaint system settings

🗂️ MongoDB Migration (JSON → MongoDB)

If you are upgrading from a previous version that used flat-file JSON storage, use the built-in migration script to move all your data into MongoDB safely.

Prerequisites

Add the MONGODB connection string to your .env:

MONGODB=mongodb+srv://<user>:<password>@cluster.mongodb.net/next-generation

Get a free cluster at https://www.mongodb.com/atlas

How it works

migrate.js reads every JSON file from database/ and dashboard/database/<guildId>/ and upserts each record into the matching MongoDB collection:

JSON source MongoDB collection
database/afk.json afks
database/warn.json + warning.json warnings
database/jail.json + jailed.json jails
database/muting.json + records.json mutes
database/temp_role.json temproles
database/auto_role.json guilds (→ autoRoles)
database/auto_responder.json guilds (→ autoResponder)
database/suggestions.json guilds (→ suggestionsConfig)
dashboard/database/<id>/levels.json memberlevels
dashboard/database/<id>/open_tickets.json tickets
dashboard/database/<id>/ticket_feedback.json ticketfeedbacks
dashboard/database/<id>/staff_scores.json staffscores
dashboard/database/<id>/interaction_scores.json interactionscores
dashboard/database/<id>/settings.json, protection.json, … guilds

Guarantees

Property Detail
Idempotent Uses findOneAndUpdate + upsert: true — safe to run multiple times, never duplicates
Non-destructive Existing MongoDB documents are only added to / updated, never deleted
Expired records skipped Active mutes, jails, and temp roles past expiresAt are not migrated
Stable IDs Legacy records without a caseId get a deterministic ID (LEGACY_<userId>_<index>) so re-runs always produce the same document

Run

# Preview — prints what would be migrated without writing anything
node migrate.js --dry-run

# Full migration
node migrate.js

Reading the output

Symbol Meaning
Record upserted successfully
⏭️ Skipped (empty file, expired record, or dry-run mode)
Individual record failed — error printed, migration continues

🌐 Dashboard Setup

  1. Go to Discord Developer Portal → your app → OAuth2 → Redirects
  2. Add your redirect: http://localhost:2000/auth/discord/redirect (or your domain in production)
  3. Make sure CLIENT_SECRET and QAUTH_LINK in .env match exactly.
  4. Start the bot and navigate to http://localhost:2000
  5. Click Login with Discord — you'll be redirected to Discord to authorise, then back to the dashboard.

📁 Project Structure

├── commands/           Slash + text commands (one file per command)
├── systems/            Business-logic modules (auto_role, protection, tickets…)
├── dashboard/
│   ├── server.js       Express web server entry point
│   ├── routes/         Auth route handlers
│   ├── middleware/      Session & auth guards
│   ├── views/          EJS templates (one per dashboard page)
│   ├── public/         Static assets (JS, CSS)
│   └── utils/          Dashboard helpers (discord API, guildDb…)
├── database/           Flat-file JSON state (gitignored at runtime)
├── utils/              Shared bot utilities (settings, guards, lang…)
├── index.js            Bot entry point
├── settings.json       Guild configuration
├── .env.example        Environment template (copy to .env)
└── Dockerfile          Container definition

💬 Support

Got a question or a bug? Join our Discord and open a ticket:

Discord Support


💖 Donations

If this project helped you, consider supporting the team:

Platform Link
☕ Ko-fi ko-fi.com/next_generation
⭐ GitHub github.com/aymenelouadi/next-generation

Your support helps us keep building and maintaining free, open-source Discord tools. ❤️


📄 License

This project is licensed under the Apache License — see LICENSE for details.


Made with ❤️ by the Next Generation Team
Discord · Ko-fi · GitHub

About

Next Generation Discord Bot Dashboard with advanced server management, moderation, automation, and powerful web interface built with Node.js.

Resources

License

Code of conduct

Contributing

Security policy

Stars

62 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors