AeThex-Bot-Master/replit.md
sirpiglr 704af08a7d Remove Python dependencies and update project documentation
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
2025-12-08 02:10:15 +00:00

173 lines
6 KiB
Markdown

# 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_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)
```json
{
"status": "online",
"guilds": 8,
"commands": 14,
"uptime": 3600,
"heatMapSize": 0,
"supabaseConnected": false,
"timestamp": "2025-12-07T23:00:00.000Z"
}
```
**GET /stats** (port 8080)
```json
{
"guilds": [...],
"totalMembers": 500,
"uptime": 3600,
"activeTickets": 0,
"heatEvents": 0
}
```
## Running the Bot
```bash
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