AeThex-Bot-Master/replit.md
sirpiglr b178664f99 Make Supabase features optional and integrate new security systems
Updates bot.js to make Supabase integration optional, adds Sentinel security listeners, and modifies several commands to handle missing Supabase configurations gracefully. Also updates package.json and replit.md for new dependencies and features.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: aed2e46d-25bb-4b73-81a1-bb9e8437c261
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 0d645005-4840-49ef-9446-2c62d2bb7eed
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3bdfff67-975a-46ad-9845-fbb6b4a4c4b5/aed2e46d-25bb-4b73-81a1-bb9e8437c261/Wmps8l5
Replit-Helium-Checkpoint-Created: true
2025-12-07 23:41:11 +00:00

5.9 KiB

AeThex Unified Bot

A complete Discord bot combining AeThex community features and Sentinel enterprise security in one instance.

Overview

AeThex Unified Bot handles both community features AND security:

  • Community Features: User verification, profile linking, realm selection, leaderboards, community posts
  • Sentinel Security: Anti-nuke protection with RAM-based heat tracking
  • Federation Sync: Cross-server role synchronization across 5 realms
  • Ticket System: Support tickets with automatic channel creation
  • Admin Monitoring: Real-time status, threat monitoring, server overview

Tech Stack

  • Runtime: Node.js 20
  • Framework: discord.js v14
  • Database: Supabase (optional - for user verification and community features)
  • Health Endpoint: HTTP server on port 8080

Project Structure

aethex-bot/
├── bot.js                      # Main entry point (merged: original + Sentinel)
├── package.json
├── .env.example                # Complete environment template
├── Dockerfile                  # Docker deployment config
├── discloud.config             # DisCloud hosting config
├── DEPLOYMENT_GUIDE.md         # Deployment documentation
├── commands/
│   ├── admin.js                # /admin status|heat|servers|threats|federation
│   ├── federation.js           # /federation link|unlink|list
│   ├── help.js                 # /help - command list
│   ├── leaderboard.js          # /leaderboard - top contributors
│   ├── post.js                 # /post - community feed posts
│   ├── profile.js              # /profile - view linked profile
│   ├── refresh-roles.js        # /refresh-roles - sync roles
│   ├── set-realm.js            # /set-realm - choose primary realm
│   ├── stats.js                # /stats - user statistics
│   ├── status.js               # /status - network overview
│   ├── ticket.js               # /ticket create|close
│   ├── unlink.js               # /unlink - disconnect account
│   ├── verify-role.js          # /verify-role - check roles
│   └── verify.js               # /verify - link account
├── events/
│   └── messageCreate.js        # Message event handler
├── listeners/
│   ├── feedSync.js             # Community feed sync
│   └── sentinel/
│       ├── antiNuke.js         # Channel delete monitor
│       ├── roleDelete.js       # Role delete monitor
│       ├── memberBan.js        # Mass ban detection
│       └── memberKick.js       # Mass kick detection
└── scripts/
    └── register-commands.js    # Slash command registration

Commands (14 Total)

Community Commands (10)

Command Description
/verify Link your Discord account to AeThex
/unlink Disconnect your Discord from AeThex
/profile View your linked AeThex profile
/set-realm Choose your primary realm
/verify-role Check your assigned Discord roles
/refresh-roles Sync roles based on AeThex profile
/stats View your AeThex statistics
/leaderboard View top contributors
/post Create a community feed post
/help View all bot commands

Sentinel Commands (4)

Command Description
/admin status View bot status and statistics
/admin heat @user Check heat level of a user
/admin servers View all connected servers
/admin threats View active threat monitor
/admin federation View federation role mappings
/federation link @role Link a role for cross-server sync
/federation unlink @role Remove a role from sync
/federation list List all linked roles
/ticket create [reason] Create a support ticket
/ticket close Close the current ticket
/status View network status

Sentinel Security System

Anti-nuke system using RAM-based heat tracking for instant response:

  • Heat Threshold: 3 dangerous actions in 10 seconds triggers auto-ban
  • Monitored Actions: Channel delete, role delete, member ban, member kick
  • Alerts: Sends to configured alert channel and DMs server owner
  • Whitelist: Set WHITELISTED_USERS env var for trusted users

Environment Variables

Required

  • DISCORD_BOT_TOKEN - Bot token from Discord Developer Portal
  • DISCORD_CLIENT_ID - Application ID (e.g., 578971245454950421)

Optional - Supabase (for community features)

  • SUPABASE_URL - Supabase project URL
  • SUPABASE_SERVICE_ROLE - Supabase service role key

Optional - Federation

  • HUB_GUILD_ID - Main hub server
  • LABS_GUILD_ID, GAMEFORGE_GUILD_ID, CORP_GUILD_ID, FOUNDATION_GUILD_ID

Optional - Security

  • WHITELISTED_USERS - Comma-separated user IDs to skip heat tracking
  • ALERT_CHANNEL_ID - Channel for security alerts

Optional - Feed Sync

  • DISCORD_FEED_CHANNEL_ID - Channel for community feed
  • DISCORD_FEED_GUILD_ID - Guild for community feed
  • DISCORD_MAIN_CHAT_CHANNELS - Comma-separated channel IDs

Health Endpoints

GET /health (port 8080)

{
  "status": "online",
  "guilds": 8,
  "commands": 14,
  "uptime": 3600,
  "heatMapSize": 0,
  "supabaseConnected": false,
  "timestamp": "2025-12-07T23:00:00.000Z"
}

GET /stats (port 8080)

{
  "guilds": [...],
  "totalMembers": 500,
  "uptime": 3600,
  "activeTickets": 0,
  "heatEvents": 0
}

Running the Bot

cd aethex-bot
npm install
npm start

Commands are registered automatically on startup or via POST to /register-commands.

Current Status

  • Bot running as AeThex#9389
  • Connected to 8 servers
  • 14 commands loaded
  • 4 Sentinel listeners active
  • Health endpoint on port 8080
  • Supabase optional (community features limited when not configured)

Workflow

  • Name: AeThex Unified Bot
  • Command: cd aethex-bot && npm start
  • Status: Running