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
This commit is contained in:
parent
fbd203dcfc
commit
86b9700b4c
1 changed files with 144 additions and 0 deletions
144
replit.md
144
replit.md
|
|
@ -95,3 +95,147 @@ The application runs on port 5000 using the Flask development server.
|
|||
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)
|
||||
```json
|
||||
{
|
||||
"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)
|
||||
```json
|
||||
{
|
||||
"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
|
||||
|
||||
```bash
|
||||
cd sentinel-bot
|
||||
npm install
|
||||
npx prisma generate
|
||||
npx prisma db push
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
For development:
|
||||
```bash
|
||||
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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue