- HTML 34.2%
- JavaScript 32.3%
- Python 17%
- CSS 16.5%
| python | ||
| static | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| users.db | ||
🖥️ AI System Dashboard
A comprehensive web-based system administration dashboard with remote management capabilities, network scanning, and real-time system monitoring.
📋 Table of Contents
- Overview
- Features
- Technology Stack
- Project Structure
- Installation
- Configuration
- Usage
- API Documentation
- Security
- Contributing
- License
🎯 Overview
AI System Dashboard is a powerful, web-based system administration tool designed to provide comprehensive control over both local and remote systems. Built with Flask and modern web technologies, it offers real-time monitoring, SSH terminal access, RDP connections, network scanning, and web vulnerability assessment capabilities.
Key Highlights
- Real-time System Monitoring: Track CPU, RAM, and disk usage with live updates
- Remote System Management: SSH and RDP connectivity for remote administration
- Network Scanner: Discover and analyze devices on your network
- Web Security Scanner: Identify potential vulnerabilities in web applications
- User Management: Role-based access control (Admin/User)
- Cross-Platform: Works on Windows and Linux systems
✨ Features
🔍 System Monitoring
- Real-time Metrics Dashboard
- CPU usage percentage and core count
- RAM utilization with detailed breakdowns
- Disk space monitoring
- Live process viewer with resource consumption
- Sortable process table (by name, PID, memory, CPU)
🌐 Remote System Management
-
SSH Terminal
- Interactive command-line interface
- Command history navigation (Arrow Up/Down)
- Sudo command support
- Real-time output streaming
- Terminal output copy functionality
-
RDP (Remote Desktop Protocol)
- Windows Remote Desktop integration
- Automated connection launching
- Credential management
- Cross-platform RDP support (xfreerdp for Linux)
🔎 Network Scanning
- IP Range Scanner
- CIDR notation support (e.g., 192.168.1.0/24)
- Single IP or subnet scanning
- Ping-based host discovery
- Response time measurement
- Active/passive host classification
- Export scan results
- Real-time progress tracking
🕷️ Web Security Scanner
- Comprehensive Web Analysis
- HTTP/HTTPS protocol support
- Security header validation
- Content-Security-Policy (CSP)
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- Strict-Transport-Security (HSTS)
- Admin panel discovery
- robots.txt analysis
- Technology fingerprinting
- Open redirect vulnerability detection
- SSL/TLS configuration check
- HTTP response code analysis
👥 User Management
- Role-Based Access Control
- Admin and User roles
- Secure authentication
- User CRUD operations (Create, Read, Update, Delete)
- Password management
- Session handling
🛠️ Technology Stack
Backend
- Python 3.8+
- Flask 2.0+ - Web framework
- Flask-CORS - Cross-Origin Resource Sharing
- Flask-Sock - WebSocket support
- psutil - System and process utilities
- paramiko - SSH protocol implementation
- py-cpuinfo - CPU information gathering
- requests - HTTP library
Frontend
- HTML5 - Semantic markup
- CSS3 - Modern styling with custom properties
- JavaScript (ES6+) - Interactive functionality
- WebSocket - Real-time communication
System Integration
- SQLite3 - User database (optional)
- JSON - User data storage
- subprocess - System command execution
- Windows CMD / Linux Shell - Terminal integration
📁 Project Structure
SohbetAI/
├── python/ # Backend server code
│ ├── data/
│ │ └── users.json # User credentials database
│ ├── server.py # Main Flask application
│ ├── users.py # User management module
│ ├── database.py # Database initialization
│ ├── ssh_handler.py # SSH command execution handler
│ └── users.json # Backup user data
│
├── static/ # Frontend assets
│ ├── html/ # HTML pages
│ │ ├── login.html # Login page
│ │ ├── app.html # System monitor dashboard
│ │ ├── remote.html # Remote system management
│ │ ├── ssh.html # SSH terminal interface
│ │ ├── users.html # User management panel
│ │ └── webscanner.html # Web security scanner
│ │
│ ├── css/ # Stylesheets
│ │ ├── style.css # Global styles
│ │ ├── navbar.css # Navigation bar styles
│ │ ├── app.css # Dashboard styles
│ │ ├── remote.css # Remote management styles
│ │ ├── users.css # User management styles
│ │ ├── webscanner.css # Scanner styles
│ │ └── aichat.css # AI chat widget styles
│ │
│ └── js/ # JavaScript files
│ ├── login.js # Authentication logic
│ ├── system.js # System monitoring
│ ├── remote.js # Remote management
│ ├── ssh.js # SSH terminal functionality
│ ├── users.js # User management
│ ├── webscanner.js # Web scanner logic
│ ├── navbar.js # Navigation functionality
│ └── aichat.js # AI chat integration
│
└── README.md # Project documentation
🚀 Installation
Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
- Git (optional, for cloning)
Step 1: Clone the Repository
git clone https://github.com/yusufaliaskin/AI-System-Dashboard.git
cd AI-System-Dashboard
Step 2: Install Dependencies
pip install flask flask-cors flask-sock psutil paramiko py-cpuinfo requests
Or create a requirements.txt:
pip install -r requirements.txt
requirements.txt contents:
Flask>=2.0.0
flask-cors>=3.0.10
flask-sock>=0.5.0
psutil>=5.8.0
paramiko>=2.7.0
py-cpuinfo>=8.0.0
requests>=2.26.0
Step 3: Initialize User Database
The default admin credentials are:
- Username:
admin - Password:
123
⚠️ IMPORTANT: Change the default password immediately after first login!
Step 4: Start the Server
cd python
python server.py
The server will start on http://0.0.0.0:5000
Step 5: Access the Dashboard
Open your web browser and navigate to:
http://localhost:5000
⚙️ Configuration
Port Configuration
To change the default port (5000), edit server.py:
if __name__ == '__main__':
app.run(host='0.0.0.0', port=YOUR_PORT, debug=True)
User Data Storage
User credentials are stored in:
python/data/users.json(primary)python/users.json(backup)
Format:
[
{
"username": "admin",
"password": "123",
"role": "admin"
}
]
Security Headers
CORS is enabled by default. To restrict access, modify server.py:
CORS(app, resources={r"/*": {"origins": "http://yourdomain.com"}})
📖 Usage
1. Login
- Navigate to
http://localhost:5000 - Enter credentials (default: admin/123)
- Click "Giriş Yap" (Login)
2. System Monitor
Access: Main dashboard after login
- View real-time CPU, RAM, and disk usage
- Monitor running processes
- Sort processes by different metrics
- Toggle detailed process view
3. Remote System Management
Access: Navigate to "Uzak Sistem" (Remote System)
SSH Terminal:
- Enter target IP address
- Provide username and password
- Click "Bağlantıyı Test Et" (Test Connection)
- Switch to "SSH Terminal" tab
- Enter commands in the terminal
- Use checkbox for sudo commands
RDP Connection:
- Switch to "RDP Masaüstü" tab
- Credentials auto-populate from connection form
- Click "RDP Bağlantısını Başlat" (Start RDP Connection)
4. Network Scanning
Access: Remote System → "Ağ Taraması" (Network Scan)
- Enter IP range (e.g.,
192.168.1.0/24) - Click "Taramayı Başlat" (Start Scan)
- Monitor progress in real-time
- View active/passive hosts
- Export results if needed
5. Web Security Scanner
Access: Navigate to "Web Tarayıcı" (Web Scanner)
- Enter target URL (e.g.,
https://example.com) - Optional: Enable "Derin tarama" (Deep Scan)
- Click "Taramayı Başlat" (Start Scan)
- Review:
- HTTP headers
- Security checks
- Admin panel candidates
- robots.txt
- Server summary
6. User Management (Admin Only)
Access: Navigate to "Kullanıcı Kontrolü" (User Control)
- Add User: Fill form and click "Kullanıcı Ekle"
- Delete User: Click "Sil" (Delete) next to username
- Change Password: Click "Şifre Değiştir" (Change Password)
🔌 API Documentation
Authentication
POST /login
Authenticate user and create session.
Request:
{
"username": "admin",
"password": "123"
}
Response:
{
"message": "Giriş başarılı",
"username": "admin",
"role": "admin"
}
System Monitoring
GET /system-info
Retrieve current system metrics.
Response:
{
"ram": {
"total": 16777216000,
"used": 8388608000,
"free": 8388608000,
"percent": 50.0
},
"cpu": {
"percent": 25.5,
"cores": 8
},
"disk": {
"total": 500107862016,
"used": 250053931008,
"free": 250053931008,
"percent": 50.0
}
}
GET /processes
Get list of running processes.
Response:
[
{
"name": "chrome.exe",
"pid": 1234,
"memory": "256.5 MB",
"memory_percent": 1.5,
"cpu": "2.3%"
}
]
Command Execution
POST /api/execute-cmd
Execute system command with path support.
Request:
{
"command": "dir",
"path": "C:\\Users"
}
Response:
{
"output": "...",
"newPath": "C:\\Users"
}
SSH Operations
POST /api/ssh-connect
Execute SSH command on remote system.
Request:
{
"ip": "192.168.1.100",
"username": "user",
"password": "password",
"command": "ls -la",
"is_sudo": false
}
Response:
{
"output": "total 48\ndrwxr-xr-x..."
}
Remote Desktop
POST /api/rdp-connect
Initiate RDP connection.
Request:
{
"ip": "192.168.1.100",
"username": "administrator",
"password": "password"
}
Response:
{
"message": "RDP bağlantısı başlatıldı"
}
Network Scanning
WebSocket /ws/scan
Real-time network scanning via WebSocket.
Send:
{
"ipAddress": "192.168.1.0/24"
}
Receive (streaming):
{
"type": "status",
"ip": "192.168.1.1",
"status": "Aktif",
"time": "5 ms",
"progress": 25.5,
"message": "Aktif cihaz bulundu: 192.168.1.1"
}
Web Scanner
POST /api/webscan
Perform web security scan.
Request:
{
"url": "https://example.com",
"deep": false
}
Response:
{
"target": "https://example.com",
"status": "ok",
"http_code": 200,
"ssl": true,
"headers": {...},
"security": [...],
"admin_panels": [...],
"robots": "...",
"summary": {...}
}
User Management
GET /api/users
Retrieve all users (passwords excluded).
POST /api/users
Create new user.
Request:
{
"username": "newuser",
"password": "securepass",
"role": "user"
}
DELETE /api/users/<username>
Delete specific user.
PUT /api/users/<username>/password
Change user password.
Request:
{
"newPassword": "newsecurepass"
}
🔒 Security
Current Implementation
- Session-based authentication
- Role-based access control (RBAC)
- Command injection prevention (basic)
- CORS protection
- Dangerous command blocking in SSH handler
Security Recommendations
⚠️ CRITICAL - BEFORE PRODUCTION USE:
-
Password Hashing
import hashlib password_hash = hashlib.sha256(password.encode()).hexdigest() -
HTTPS/SSL
- Use SSL certificates
- Enable HTTPS on Flask
-
Environment Variables
- Store sensitive data in
.envfiles - Never commit credentials to version control
- Store sensitive data in
-
Input Validation
- Sanitize all user inputs
- Implement rate limiting
-
Authentication Tokens
- Implement JWT or OAuth2
- Add session expiration
-
Database Security
- Use proper database instead of JSON files
- Implement prepared statements
-
Firewall Rules
- Restrict access to specific IP ranges
- Use VPN for remote access
Blocked Commands
The SSH handler blocks potentially dangerous commands:
rm -rfmkfsdd
🤝 Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Development Guidelines
- Follow PEP 8 for Python code
- Use meaningful variable and function names
- Comment complex logic
- Test thoroughly before submitting
📄 License
This project is licensed under the MIT License.
🙏 Acknowledgments
- Flask framework and community
- psutil developers
- paramiko SSH library
- All open-source contributors
- Original inspiration: System-Board
📞 Contact
Yusuf Ali Aşkın
- GitHub: @yusufaliaskin
- LinkedIn: Yusuf Aşkın
- Instagram: @joseph.ddf
- Email: yusufaliaskin@gmail.com
- Project Link: https://github.com/yusufaliaskin/AI-System-Dashboard
🐛 Known Issues
- RDP connections require manual terminal interaction on some systems
- Network scanning speed depends on ping timeout settings
- SQLite database initialization is optional and not fully integrated
- Two users.json files require synchronized updates
🗺️ Roadmap
- Add Docker support
- Implement proper JWT authentication
- Add database migration tools
- Create mobile-responsive design
- Add system logs viewer
- Implement file transfer capabilities
- Add multi-language support
- Create API rate limiting
- Add automated backup features
- Implement notification system
- Consolidate dual users.json files
- Add password strength requirements
- Implement two-factor authentication
⭐ Star this repository if you find it helpful! ⭐
Made with ❤️ by Yusuf Ali Aşkın