# Bot Master A centralized management dashboard for managing multiple Discord bots. ## Overview Bot Master is a Flask-based web application that provides a central dashboard for monitoring and managing multiple Discord bots. It supports: - **Bot Registry**: Store configurations for all your bots - **Status Monitoring**: Real-time health checks for each bot - **Statistics**: Track servers, commands, and uptime across all bots - **CRUD Operations**: Add, edit, view, and delete bot configurations ## Tech Stack - **Backend**: Python/Flask - **Database**: PostgreSQL (via Flask-SQLAlchemy) - **Frontend**: Jinja2 templates with custom CSS ## Project Structure ``` / ├── main.py # Flask application entry point ├── templates/ # HTML templates │ ├── base.html # Base layout template │ ├── dashboard.html # Main dashboard view │ ├── bots.html # Bot list table view │ ├── add_bot.html # Add new bot form │ ├── view_bot.html # Bot details view │ └── edit_bot.html # Edit bot form ├── static/ # Static assets (currently empty) └── attached_assets/ # Uploaded files and extracted bot examples ├── bot1/ # Example AeThex bot (basic) └── bot2/ # Example AeThex bot (extended with feed sync) ``` ## Database Models ### Bot - `id`: Primary key - `name`: Bot name (required) - `description`: Bot description - `health_endpoint`: URL for health check API - `admin_token`: Bearer token for authenticated endpoints - `bot_type`: Type of bot (discord, telegram, slack, other) - `status`: Current status (online, offline, unknown, timeout, error) - `last_checked`: Timestamp of last health check - `guild_count`, `command_count`, `uptime_seconds`: Stats from health endpoint - `created_at`, `updated_at`: Timestamps ### BotLog - Stores log entries per bot (for future logging features) ## API Endpoints - `GET /` - Dashboard - `GET /bots` - List all bots - `GET /bots/add` - Add bot form - `POST /bots/add` - Create new bot - `GET /bots/` - View bot details - `GET /bots//edit` - Edit bot form - `POST /bots//edit` - Update bot - `POST /bots//delete` - Delete bot - `POST /bots//check` - Check bot health ### API (JSON) - `GET /api/bots` - List all bots as JSON - `GET /api/bots//health` - Check specific bot health - `POST /api/check-all` - Check all bots health ## Health Check Integration Each bot should expose a health endpoint that returns JSON: ```json { "status": "online", "guilds": 5, "commands": 12, "uptime": 3600 } ``` ## Running the Application The application runs on port 5000 using the Flask development server. ## Environment Variables - `DATABASE_URL` - PostgreSQL connection string - `FLASK_SECRET_KEY` - Secret key for session management (auto-generated if not set) ## Example Bots The `attached_assets` folder contains two example AeThex Discord bots: - **Bot 1**: Basic version with verify, profile, set-realm, unlink, verify-role commands - **Bot 2**: Extended version with additional help, stats, leaderboard, post commands and feed sync