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
5.9 KiB
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_USERSenv var for trusted users
Environment Variables
Required
DISCORD_BOT_TOKEN- Bot token from Discord Developer PortalDISCORD_CLIENT_ID- Application ID (e.g., 578971245454950421)
Optional - Supabase (for community features)
SUPABASE_URL- Supabase project URLSUPABASE_SERVICE_ROLE- Supabase service role key
Optional - Federation
HUB_GUILD_ID- Main hub serverLABS_GUILD_ID,GAMEFORGE_GUILD_ID,CORP_GUILD_ID,FOUNDATION_GUILD_ID
Optional - Security
WHITELISTED_USERS- Comma-separated user IDs to skip heat trackingALERT_CHANNEL_ID- Channel for security alerts
Optional - Feed Sync
DISCORD_FEED_CHANNEL_ID- Channel for community feedDISCORD_FEED_GUILD_ID- Guild for community feedDISCORD_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