AeThex-Bot-Master/replit.md
sirpiglr 86b9700b4c Add comprehensive documentation for the Aethex Sentinel bot
Adds detailed documentation to replit.md for the Aethex Sentinel bot, covering its overview, tech stack, project structure, database models, commands, health endpoint, and environment variables.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e72fc1b7-94bd-4d6c-801f-cbac2fae245c
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 8496ba65-c289-429f-a4bd-0235ea116b87
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3bdfff67-975a-46ad-9845-fbb6b4a4c4b5/e72fc1b7-94bd-4d6c-801f-cbac2fae245c/jW8PJKQ
Replit-Helium-Checkpoint-Created: true
2025-12-07 21:12:39 +00:00

7.2 KiB

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/<id> - View bot details
  • GET /bots/<id>/edit - Edit bot form
  • POST /bots/<id>/edit - Update bot
  • POST /bots/<id>/delete - Delete bot
  • POST /bots/<id>/check - Check bot health

API (JSON)

  • GET /api/bots - List all bots as JSON
  • GET /api/bots/<id>/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:

{
  "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

Aethex Sentinel Bot

Enterprise-grade Discord bot for managing a federation of 5 servers.

Overview

Aethex Sentinel is a TypeScript-based Discord bot built with the Sapphire framework. It provides:

  • Federation Sync: Cross-server role synchronization
  • Sentinel Security: Anti-nuke protection with heat-based threat detection
  • Commerce Module: Ticket system with database persistence
  • Dashboard Updates: Network status updates in voice channels

Tech Stack

  • Runtime: Node.js 20 + TypeScript
  • Framework: @sapphire/framework
  • Database: PostgreSQL (via Prisma ORM)
  • Health Endpoint: HTTP server on port 8044

Project Structure

sentinel-bot/
├── src/
│   ├── core/
│   │   ├── client.ts      - SapphireClient with Prisma
│   │   ├── config.ts      - Environment configuration
│   │   └── health.ts      - Health endpoint server
│   ├── modules/
│   │   ├── federation/FederationManager.ts  - Cross-server role sync
│   │   ├── security/HeatSystem.ts           - Anti-nuke protection
│   │   ├── commerce/TicketManager.ts        - Ticket system
│   │   └── dashboard/StatusUpdater.ts       - Network status updates
│   ├── listeners/
│   │   ├── ready.ts              - Bot ready handler
│   │   ├── guildMemberUpdate.ts  - Role sync listener
│   │   ├── auditLogCreate.ts     - Security monitor
│   │   └── interactionCreate.ts  - Button handler
│   ├── commands/
│   │   ├── federation.ts  - /federation command
│   │   ├── sentinel.ts    - /sentinel command
│   │   ├── ticket.ts      - /ticket command
│   │   └── status.ts      - /status command
│   └── index.ts           - Entry point
├── prisma/
│   └── schema.prisma      - Database models
├── package.json
├── tsconfig.json
└── .env.example

Database Models (Prisma)

  • User: Discord user profiles with federation membership
  • HeatEvent: Security events for threat detection
  • Ticket: Support tickets with transcripts
  • GuildConfig: Per-guild configuration
  • RoleMapping: Cross-server role sync mappings

Commands

Command Description
/federation link Link a role across servers
/federation unlink Remove a role mapping
/federation list Show all role mappings
/sentinel heat View heat level of a user
/sentinel lockdown Enable/disable lockdown mode
/sentinel config Configure security thresholds
/ticket create Create a support ticket
/ticket close Close a ticket with transcript
/status View network status

Health Endpoint

The bot exposes a health endpoint compatible with Bot Master dashboard:

GET /health (port 8044)

{
  "status": "online",
  "guilds": 5,
  "commands": 12,
  "uptime": 3600,
  "timestamp": "2025-12-07T12:00:00.000Z",
  "bot": {
    "tag": "Aethex Sentinel#1234",
    "id": "123456789"
  }
}

GET /stats (port 8044)

{
  "guilds": [
    { "id": "...", "name": "...", "memberCount": 100 }
  ],
  "totalMembers": 500,
  "uptime": 3600
}

Environment Variables

Required secrets (add in Replit Secrets tab):

  • DISCORD_TOKEN - Discord bot token
  • DATABASE_URL - PostgreSQL connection string

Optional configuration:

  • HUB_GUILD_ID - Main hub server ID
  • FEDERATION_GUILD_IDS - Comma-separated list of guild IDs
  • HEALTH_PORT - Health server port (default: 8044)

Running the Bot

cd sentinel-bot
npm install
npx prisma generate
npx prisma db push
npm run build
npm start

For development:

npm run dev

Integration with Bot Master

Once the Sentinel bot is running, add it to Bot Master dashboard:

  1. Go to Bot Master dashboard (port 5000)
  2. Click "Add Bot"
  3. Enter name: "Aethex Sentinel"
  4. Enter health endpoint: http://localhost:8044/health
  5. Select type: "discord"

The dashboard will automatically poll the health endpoint for status updates.