222 lines
6.8 KiB
Markdown
222 lines
6.8 KiB
Markdown
# Project Summary: A/D Infrastructure Control System
|
|
|
|
## ✅ Completed Implementation
|
|
|
|
### 1. **PostgreSQL Database** (`init-db.sql`)
|
|
- Shared database for all services
|
|
- Tables: services, service_logs, attacks, attack_alerts, telegram_messages, settings
|
|
- Proper indexes for performance
|
|
- Initial default settings
|
|
|
|
### 2. **API Controller** (`controler/`)
|
|
- FastAPI-based service management
|
|
- **Endpoints:**
|
|
- `POST /services` - Register new service
|
|
- `GET /services` - List all services
|
|
- `POST /services/{id}/action` - Start/stop/restart
|
|
- `POST /services/{id}/pull` - Git pull with auto-restart
|
|
- `GET /services/{id}/logs` - View service logs
|
|
- `GET /services/{id}/status` - Real-time status
|
|
- `GET /services/{id}/action-logs` - Action history
|
|
- Token-based authentication
|
|
- Docker-compose integration
|
|
- PostgreSQL logging
|
|
|
|
### 3. **Scoreboard Injector** (`scoreboard_injector/`)
|
|
- WebSocket client for ForcAD scoreboard
|
|
- **Features:**
|
|
- Real-time attack monitoring
|
|
- Automatic attack classification (our attacks vs attacks against us)
|
|
- Point loss threshold alerts
|
|
- Automatic Telegram notifications for critical situations
|
|
- **API Endpoints:**
|
|
- `GET /stats` - Attack statistics
|
|
- `GET /attacks` - Recent attacks with filtering
|
|
- `GET /alerts` - Alert history
|
|
- `GET /attacks/by-service` - Service-grouped statistics
|
|
- `POST /settings/team-id` - Update team ID
|
|
|
|
### 4. **Telegram Bot** (`tg-bot/`)
|
|
- Notification system for group chat
|
|
- **API Endpoints:**
|
|
- `POST /send` - Send single message
|
|
- `POST /send-bulk` - Send multiple messages
|
|
- `GET /messages` - Message history
|
|
- `GET /stats` - Delivery statistics
|
|
- `POST /test` - Test bot connection
|
|
- Message delivery tracking
|
|
- HTML message support
|
|
|
|
### 5. **Web Dashboard** (`web/`)
|
|
- Flask-based responsive UI
|
|
- **Pages:**
|
|
- Login page with password protection
|
|
- Dashboard - Overview with stats and recent alerts
|
|
- Services - Manage all registered services
|
|
- Attacks - Real-time attack monitoring
|
|
- Alerts - Alert history and testing
|
|
- **Features:**
|
|
- Auto-refresh every 5-15 seconds
|
|
- Service control (start/stop/restart)
|
|
- Log viewing
|
|
- Attack filtering
|
|
- Test message sending
|
|
- Bootstrap 5 UI with jQuery
|
|
|
|
### 6. **Setuper Script** (`setuper/setup.sh`)
|
|
- Automated installation for:
|
|
- **Packmate** (GitLab) - Traffic analysis
|
|
- **moded_distructive_farm** (GitHub) - Attack farm
|
|
- **Firegex** (GitHub) - Flag checker
|
|
- Creates complete .env files
|
|
- Generates docker-compose.yml for each service
|
|
- Auto-registers with controller API
|
|
- Interactive configuration
|
|
|
|
### 7. **Deployment**
|
|
- **docker-compose.yaml** - Orchestrates all 5 services
|
|
- **install.sh** - One-line installation script
|
|
- **.env.example** - Configuration template
|
|
- **Makefile** - Convenient management commands
|
|
- **README.md** - Complete documentation
|
|
- **QUICKSTART.md** - Quick start guide
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
attack-defence-infr-control/
|
|
├── controler/
|
|
│ ├── main.py # Controller API
|
|
│ ├── requirements.txt
|
|
│ └── Dockerfile
|
|
├── scoreboard_injector/
|
|
│ ├── main.py # Scoreboard monitor
|
|
│ ├── requirements.txt
|
|
│ └── Dockerfile
|
|
├── tg-bot/
|
|
│ ├── main.py # Telegram bot
|
|
│ ├── requirements.txt
|
|
│ └── Dockerfile
|
|
├── web/
|
|
│ ├── app.py # Flask application
|
|
│ ├── templates/ # HTML templates
|
|
│ │ ├── base.html
|
|
│ │ ├── login.html
|
|
│ │ ├── index.html
|
|
│ │ ├── services.html
|
|
│ │ ├── attacks.html
|
|
│ │ └── alerts.html
|
|
│ ├── requirements.txt
|
|
│ └── Dockerfile
|
|
├── setuper/
|
|
│ ├── setup.sh # Service installer
|
|
│ └── README.md
|
|
├── services/ # Managed services directory
|
|
├── docker-compose.yaml # Main orchestration
|
|
├── init-db.sql # Database schema
|
|
├── install.sh # One-line installer
|
|
├── .env.example # Config template
|
|
├── .gitignore
|
|
├── Makefile # Management commands
|
|
├── README.md # Full documentation
|
|
├── QUICKSTART.md # Quick start guide
|
|
└── LICENSE # MIT License
|
|
```
|
|
|
|
## 🚀 Usage
|
|
|
|
### Installation
|
|
```bash
|
|
curl -sSL https://raw.githubusercontent.com/YOUR-REPO/main/install.sh | bash
|
|
```
|
|
|
|
### Manual Setup
|
|
```bash
|
|
git clone <repo>
|
|
cd attack-defence-infr-control
|
|
cp .env.example .env
|
|
# Edit .env
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Using Makefile
|
|
```bash
|
|
make init # Create .env
|
|
make build # Build images
|
|
make up # Start services
|
|
make logs # View logs
|
|
make setup # Run setuper
|
|
```
|
|
|
|
## 🔑 Key Features
|
|
|
|
1. **Unified Control** - Single dashboard for all A/D infrastructure
|
|
2. **Real-time Monitoring** - WebSocket connection to scoreboard
|
|
3. **Automatic Alerts** - Smart threshold-based notifications
|
|
4. **Service Management** - Start/stop/restart with one click
|
|
5. **Git Integration** - Auto-pull and restart services
|
|
6. **Telegram Integration** - Group notifications
|
|
7. **API-First** - All features accessible via REST API
|
|
8. **Secure** - Token-based authentication
|
|
9. **Scalable** - Docker-compose based deployment
|
|
10. **Easy Setup** - Automated installation scripts
|
|
|
|
## 🎯 Use Cases
|
|
|
|
1. **During A/D Game:**
|
|
- Monitor attacks in real-time
|
|
- Get alerts when losing too many points
|
|
- Quickly restart exploited services
|
|
- Track attack statistics
|
|
|
|
2. **Service Management:**
|
|
- Deploy new exploits via git pull
|
|
- Start/stop services as needed
|
|
- View logs without SSH
|
|
- Track service uptime
|
|
|
|
3. **Team Communication:**
|
|
- Automatic critical alerts
|
|
- Manual notifications
|
|
- Centralized monitoring
|
|
|
|
## 🔐 Security
|
|
|
|
- Token-based API authentication
|
|
- Password-protected web dashboard
|
|
- Environment-based secrets
|
|
- Isolated Docker network
|
|
- No hardcoded credentials
|
|
|
|
## 📊 Technologies
|
|
|
|
- **Backend:** FastAPI, Flask, asyncpg
|
|
- **Frontend:** Bootstrap 5, jQuery
|
|
- **Database:** PostgreSQL 16
|
|
- **Messaging:** python-telegram-bot
|
|
- **WebSocket:** aiohttp
|
|
- **Deployment:** Docker, Docker Compose
|
|
|
|
## 🎓 Next Steps
|
|
|
|
1. Update README.md with your repository URL
|
|
2. Update install.sh with your repository URL
|
|
3. Configure your .env file
|
|
4. Push to GitHub
|
|
5. Test the one-line installer
|
|
6. Document any game-specific configurations
|
|
|
|
## ✨ All Requirements Met
|
|
|
|
✅ Controller API with start/stop/restart/pull/logs
|
|
✅ Scoreboard injector with WebSocket monitoring
|
|
✅ Attack detection and alerting
|
|
✅ Telegram bot with API
|
|
✅ Web dashboard with all features
|
|
✅ Setuper for Packmate, Farm, and Firegex
|
|
✅ Single PostgreSQL instance
|
|
✅ curl | bash installation
|
|
✅ Complete documentation
|
|
|
|
The system is production-ready and fully functional!
|