Devora Bot
Devora is an all-in-one Discord bot engineered from the ground up to revolutionize how servers operate.
TitanBot - Ultimate Discord Bot
TitanBot is a powerful, feature-rich Discord bot designed to enhance your server experience with comprehensive moderation tools, engaging economy systems, utility features, and much more. Built with modern Discord.js v14 and PostgreSQL for optimal performance and data persistence.
Table of Contents
- Features Overview
- Quick Setup
- Manual Installation Steps
- Support Server
- Required Bot Intents
- Contributing
Features Overview
TitanBot offers a complete suite of tools for Discord server management and community engagement:
Quick Setup (Recommended for non-coders)
Video Tutorial
For a detailed step-by-step setup guide, watch our comprehensive video tutorial: TitanBot Setup Tutorial
Docker Deployment (Recommended)
TitanBot is fully containerized for easy deployment.
Clone the repository:
git clone https://github.com/codebymitch/TitanBot.git cd TitanBotConfigure environment variables: Create a
.envfile from.env.exampleand fill in your bot details and PostgreSQL credentials.Start the containers:
docker-compose up -d
This will start both the bot and a persistent PostgreSQL database.
Using GitHub Container Registry
The bot is automatically published to GitHub Container Registry on every push to main.
docker pull ghcr.io/codebymitch/titanbot:main
Manual Installation Steps
Prerequisites
- Node.js 18.0.0 or higher
- PostgreSQL server (recommended) or memory storage fallback
- Discord bot application with proper intents
Clone the Repository
git clone https://github.com/codebymitch/TitanBot.git cd TitanBotInstall Dependencies
npm installConfigure Environment Variables
cp .env.example .envEdit
.envwith your configuration (only the following variables require configuration, leave remaining variables as default):# Discord Bot Configuration DISCORD_TOKEN=your_discord_bot_token_here CLIENT_ID=your_discord_client_id_here GUILD_ID=your_discord_guild_id_here # PostgreSQL Configuration (Primary Database) POSTGRES_URL=postgresql://postgres:yourpassword@localhost:5432/titanbot POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DB=titanbot POSTGRES_USER=postgres POSTGRES_PASSWORD=yourpasswordProduction note:
NODE_ENV=productionLOG_LEVEL=warnfor a clean production console (critical issues + startup status)LOG_LEVEL=infoif you want more detailed operational logs- If your chosen
PORTis already used, TitanBot automatically tries the next port(s)
Environment options reference:
NODE_ENV:development,production,test(any non-productionvalue is treated as non-production)LOG_LEVEL:error,warn,info,http,verbose,debug,silly- Accepted aliases for
LOG_LEVELin this bot:warns,warning,warnings→warn
Recommended production
.env(easy mode + default mode):NODE_ENV=production LOG_LEVEL=warn WEB_HOST=0.0.0.0 PORT=3000 PORT_RETRY_ATTEMPTS=5This gives clear startup/online status messages while keeping logs simple for non-technical operators. If port
3000is busy, the bot tries the next available ports automatically (up toPORT_RETRY_ATTEMPTS).
Running in multiple servers (optional)
Most users run TitanBot on a single server with GUILD_ID set (default tutorial setup). If you want commands to work in every server the bot is invited to, opt in with:
MULTI_GUILD=true
Notes for multi-server mode:
GUILD_IDis not used for command registration whenMULTI_GUILD=true(you can leave it set or remove it)- Global slash commands may take up to about an hour to propagate on first deploy
- Each server still has isolated config, economy, tickets, leveling, and other data
- In the Discord Developer Portal, ensure your bot is not restricted to a single guild if you plan to invite it elsewhere
- Generate an OAuth2 invite URL from the Discord Developer Portal (OAuth2 → URL Generator, scopes:
botandapplications.commands)
Setup PostgreSQL Database (Optional but recommended)
# Create database and user createdb titanbot createuser titanbot psql -c "ALTER USER titanbot PASSWORD 'yourpassword';" psql -c "GRANT ALL PRIVILEGES ON DATABASE titanbot TO titanbot;"Verify Database Setup
npm run migrate:checkStart the Bot
npm start
Required Bot Intents
TitanBot requires the following Discord intents:
- Guilds
- Guild Messages
- Message Content
- Guild Members
- Guild Message Reactions
- Guild Voice States
- Direct Messages
- Bot
- Applications.commands
Required Permissions
- View Channels
- Send Messages
- Embed Links
- Attach Files
- Read Message History
- Manage Messages
- Manage Channels
- Manage Roles
- Kick Members
- Manage Messages
- Ban Members
- Moderate Members
- Connect
License
TitanBot is released under the MIT License. See LICENSE for details.
Thank You
Thank you for choosing TitanBot for your Discord server! We're constantly working to improve and add new features based on community feedback.
Last updated: May 2026