Skip to content

InfiniBot is a multipurpose Discord utility bot designed to scale across millions of servers using SQLite for storage, docker for containerization, and sharding for distribution. InfiniBot is in thousands of servers, with hundreds of thousands of active users. It's built to be fast, efficient, and easy to use.

License

Notifications You must be signed in to change notification settings

cypress-exe/InfiniBot

Repository files navigation

InfiniBot

A powerful, multi-purpose Discord utility bot built for millions of servers

InfiniBot Header

GitHub stars GitHub forks GitHub issues Discord

Top.gg

πŸš€ Quick Start β€’ πŸ“– Documentation β€’ πŸ”§ Installation β€’ 🀝 Support

Add InfiniBot to Your Server Go to Help Docs

✨ Features

InfiniBot is a multipurpose Discord utility bot designed to scale across millions of servers using SQLite for storage, docker for containerization, and sharding for distribution. InfiniBot is in thousands of servers, with well over half a million active users. It's built to be fast, efficient, and easy to use.

πŸ›‘οΈ Moderation & Security

  • Advanced Profanity Filter - Customizable word filtering with strike system
  • Intelligent Spam Detection - Multi-layered anti-spam protection
  • Comprehensive Logging - Track all messages and moderator actions, including message edit and deletion history
  • Automated Moderation - Smart auto-moderation with configurable thresholds and punishments

πŸŽ‰ Community Features

  • Leveling System - Reward active members with XP and role rewards
  • Birthday Celebrations - Never miss a community member's special day
  • Reaction Roles - Self-assignable roles via emoji reactions
  • Custom Role Messages - Automated role assignment messages
  • Welcome/Leave Messages - Personalized greetings for new members

πŸŽͺ Entertainment

  • Joke Commands - Built-in entertainment features
  • Motivational Messages - Boost server morale
  • And more!

Note: External contributions are welcome! You're free to fork, contribute, and self-host for personal use or small friend groups. However, please do not create competing public instances that would conflict with the official InfiniBot service.

πŸ“‹ Prerequisites

If you just want to use the official InfiniBot, you can invite it to your server using the button below:

Add InfiniBot to Your Server

If you want to self-host InfiniBot, you'll need to set up your own instance. Here's what you need:

InfiniBot runs inside a Docker container, so Docker must already be installed. You can find documentation for setting up Docker here.

Additionally, you need to have a Discord bot registered with Discord. You can register your bot at the Discord Developer Portal.

Follow these steps to set up InfiniBot for a Linux environment. Some steps may vary for certain operating systems.

πŸš€ Quick Start

Get InfiniBot up and running in just a few minutes:

1️⃣ Clone the Repository

git clone https://github.com/cypress-exe/InfiniBot.git
cd InfiniBot

2️⃣ Build the Container

sudo bash build.bash

Docker will begin building the container, which may take some time on the first run.

πŸ’‘ Tip: Use --use-cache flag for faster builds (after initial setup)

3️⃣ Initial Run

sudo bash run.bash

⚠️ Expected: You'll see an error about missing environment variables - this is normal!

4️⃣ Configure Environment

sudo vim .env

Set your Discord bot token:

DISCORD_AUTH_TOKEN=your_bot_token_here

⚠️ Important: Only modify the DISCORD_AUTH_TOKEN variable. Leave others unchanged.

5️⃣ Start InfiniBot

sudo bash rebuild_and_run.bash

πŸŽ‰ Success! InfiniBot should now be running. Don't forget to invite your bot to a server!

Troubleshooting

Due to the way the bot works under the hood, you may need to restart InfiniBot after adding it to its first server. You can do this by running the previous command again:

sudo bash rebuild_and_run.bash

In addition, you may need to wait a few hours before all of InfiniBot's commands appear in your Discord client. This is due to Discord's caching system, which can take time to update. Try restarting your Discord client for the changes to take effect.

βš™οΈ Configuration

You can customize InfiniBot's behavior through the ./generated/configure folder:

  • 🀬 Profanity Filter - Add/remove words from default_profane_words.txt
  • πŸ‘¨β€πŸ’» Developer Settings - Configure admin IDs and bot settings in config.json

πŸ“ Note: Most settings are pre-configured for the official InfiniBot and should be left unchanged for self-hosted instances.

πŸ› οΈ Development Scripts

There are a few development scripts in the root directory of the repository to help you manage the docker container and environment. These scripts are designed to be run with sudo to ensure proper permissions for Docker operations.

πŸ“– Documentation

User documentation is available on the InfiniBot Docs Website and provides detailed information on:

  • Installation - Step-by-step setup guide
  • Configuration - How to customize settings
  • Commands - List of available commands and their usage
  • Features - Overview of all bot features and functionalities

Developer documentation is available in the ./docs folder of this repository.

🀝 Support

πŸ“Š Project Stats

GitHub repo size GitHub last commit GitHub commit activity

πŸ—οΈ Built With

  • 🐍 Python - Core bot logic
  • πŸ”— nextcord - Discord API wrapper
  • πŸ—ƒοΈ SQLite - Database storage
  • 🐳 Docker - Containerization
  • ⚑ Asyncio - Asynchronous programming

πŸ“œ License & Usage

This project is licensed under a Custom Open Source License based on GPL v3 - see the LICENSE file for details.

Usage Guidelines:

  • βœ… Personal Use - Fork, modify, and self-host for personal use or small friend groups
  • βœ… Contributions - Pull requests and contributions are welcome!
  • βœ… Open Source Derivatives - Any modifications must also be open source
  • βœ… Learning - Use the code for educational purposes
  • ❌ Public Competition - Hosting competing public instances is prohibited
  • ❌ Commercial Use - Commercial use without explicit permission is prohibited

Contributing:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made by cypress.exe

⭐ Star this repository if you found it helpful!

About

InfiniBot is a multipurpose Discord utility bot designed to scale across millions of servers using SQLite for storage, docker for containerization, and sharding for distribution. InfiniBot is in thousands of servers, with hundreds of thousands of active users. It's built to be fast, efficient, and easy to use.

Topics

Resources

License

Stars

Watchers

Forks