Removes main.py, pyproject.toml, and updates replit.md to reflect a Node.js-only project. Replit-Commit-Author: Agent Replit-Commit-Session-Id: aed2e46d-25bb-4b73-81a1-bb9e8437c261 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: 772cbdad-bafa-41c5-bc3e-c3c11c19f0af Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3bdfff67-975a-46ad-9845-fbb6b4a4c4b5/aed2e46d-25bb-4b73-81a1-bb9e8437c261/mYZvK75 Replit-Helium-Checkpoint-Created: true
6 KiB
6 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
├── 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 - Runtime: Node.js 20 (no Python required)
- Deployment: VM target with
sh -c "cd aethex-bot && npm start" - Status: Running