Guardian is a comprehensive Discord bot built with Discord.js v14, designed to provide powerful moderation tools, fun interactions, and essential server management features. With an extensive command system and customizable settings, Guardian helps keep your Discord server safe, organized, and entertaining.
Version: 1.7.0
License: Apache 2.0
Developer: Guardians-Stuff
Guardian offers a wide range of features including:
- ๐จ Moderation Tools - Ban, kick, warn, timeout, message management, and comprehensive logging
- โ๏ธ Administrator Features - Anti-raid protection, verification systems, auto-roles, ticket system, and more
- ๐ฎ Fun Commands - Interactive games, entertainment commands, and community engagement tools
- ๐ Information Commands - Server, user, and bot information utilities
- ๐ง Utility Features - Reminders, AFK status, calculator, and various helpful tools
- ๐ Backup System - Create and manage server backups
- Node.js - Runtime environment
- Discord.js v14.7.1 - Discord API wrapper
- MongoDB + Mongoose 6.8.1 - Database and ODM
- Moment.js - Date/time manipulation
Before installing Guardian, make sure you have:
- Node.js (v18.8 or higher recommended)
- MongoDB database (local or cloud-hosted)
- Discord Bot Token from Discord Developer Portal
- Git (for cloning the repository)
git clone https://github.com/Guardians-Stuff/Guardian.git
cd Guardiannpm installThis will install all required packages listed in package.json.
Create a .env file in the root directory with the following variables:
DISCORD_TOKEN=your_discord_bot_token_here
MONGODB_URL=your_mongodb_connection_string_here
LIVE=falseEnvironment Variables Explained:
-
DISCORD_TOKEN- Your Discord bot token from the Developer Portal- Get it from: https://discord.com/developers/applications
- Select your application โ Bot โ Reset Token/Copy Token
-
MONGODB_URL- Your MongoDB connection string- Local:
mongodb://localhost:27017/guardian - MongoDB Atlas:
mongodb+srv://username:password@cluster.mongodb.net/guardian - Make sure MongoDB is running if using local instance
- Local:
-
LIVE- Set totruefor production with HTTPS,falsefor development- When
true, requires SSL certificates indata/server/directory - When
false, uses HTTP on port 2053
- When
If running in production mode (LIVE=true), place your SSL certificates:
data/server/
โโโ privkey.pem # Private key
โโโ fullchain.pem # Certificate chain
For development with auto-reload using nodemon:
npm run devFor production:
npm start- โ Connects to MongoDB database
- โ Loads all event handlers
- โ Registers slash commands with Discord
- โ Initializes expiring document managers (infractions, giveaways, reminders)
- โ Logs in to Discord
You should see:
Client is connected to the database.
[Commands loaded table]
[Events loaded table]
The client is now ready.
Ensure your bot has the following permissions:
- Administrator (recommended for full functionality)
- Or individually: Manage Roles, Manage Channels, Kick Members, Ban Members, Manage Messages, etc.
-
Local MongoDB:
# Install MongoDB on your system # Start MongoDB service mongod
-
MongoDB Atlas (Cloud):
- Create account at https://www.mongodb.com/cloud/atlas
- Create a free cluster
- Get connection string
- Add your IP to whitelist
After the bot is running, use the /setup command in your Discord server to:
- Check bot permissions
- Verify bot role position
- Configure logging channels
- Initialize basic settings
npm start- Start the bot in production modenpm run dev- Start the bot in development mode (with nodemon)npm run format- Format code using Prettier (requires Docker)npm run check- Check code formatting (requires Docker)
The project uses Prettier for code formatting. To format your code:
npm run formatThis requires Docker to be installed and running. See INSTALL.md for Docker installation instructions.
-
Check Node.js version:
node --version
Should be v18.8 or higher.
-
Verify MongoDB connection:
- Ensure MongoDB is running
- Check connection string in
.env - Test connection:
mongosh "your_connection_string"
-
Check Discord token:
- Verify token is correct in
.env - Ensure bot is enabled in Developer Portal
- Check bot has proper intents enabled
- Verify token is correct in
- Verify MongoDB is running (if local)
- Check connection string format
- Ensure network access (if using Atlas)
- Check firewall settings
- Wait a few minutes for Discord to sync (can take up to 1 hour)
- Re-invite bot with proper permissions
- Check bot is online in your server
- INSTALL.md - Docker installation guide
- CONTRIBUTING.md - Contributing guidelines
- CODE_OF_CONDUCT.md - Code of conduct
We welcome contributions! Please read CONTRIBUTING.md for details on:
- Code style guidelines
- How to submit pull requests
- Reporting bugs
- Proposing features
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- GitHub Repository: Guardians-Stuff/Guardian
- Invite Bot: Invite Guardian to your server
- Developer: Brennan / Guardians-Stuff
- Community: Thanks to all users and contributors who supported Guardian
โญ Star this repo if you found it helpful! โญ
Made with โค๏ธ by the Guardian team