ServerKit
Modern, self-hosted server management panel
An open-source alternative to ServerPilot, RunCloud, and Coolify
What is ServerKit?
ServerKit is a lightweight, modern server control panel for managing web applications, databases, Docker containers, and security on your VPS or dedicated server. Built with Python/Flask backend and React frontend.
Perfect for: Developers, freelancers, and small teams who want full control over their infrastructure without the complexity of Kubernetes or the cost of managed platforms.
Features
Application Management
- PHP / WordPress - PHP-FPM 8.x with one-click WordPress installation
- Python Apps - Deploy Flask and Django with Gunicorn
- Node.js - PM2-managed Node applications
- Docker - Full container and Docker Compose management
- Environment Variables - Secure, encrypted variable management per app
Infrastructure
- Domain Management - Nginx virtual hosts with easy configuration
- SSL Certificates - Automatic Let's Encrypt with auto-renewal
- Database Management - MySQL/MariaDB and PostgreSQL support
- Firewall (UFW) - Visual firewall rule management
- Cron Jobs - Schedule tasks with a visual editor
- File Manager - Browse and edit files via web interface
- FTP Server - Manage vsftpd users and access
Security
- Two-Factor Authentication (2FA) - TOTP-based with backup codes
- ClamAV Integration - Malware scanning with quarantine
- File Integrity Monitoring - Detect unauthorized file changes
- Failed Login Detection - Monitor suspicious login attempts
- Security Alerts - Real-time notifications for threats
Monitoring & Alerts
- Real-time Metrics - CPU, RAM, disk, network monitoring
- Server Uptime Tracking - Historical uptime data
- Alert Thresholds - Customizable warning/critical levels
- Notification Webhooks:
- Discord
- Slack
- Telegram
- Generic webhooks
Modern UI
- Dark-themed responsive dashboard
- Real-time WebSocket updates
- Mobile-friendly interface
Screenshots
Quick Start
Option 1: Docker (Recommended)
# Clone the repository
git clone https://github.com/jhd3197/ServerKit.git
cd ServerKit
# Configure environment
cp .env.example .env
nano .env # Set SECRET_KEY and JWT_SECRET_KEY
# Start ServerKit
docker compose up -d
# Access at http://localhost
Option 2: One-Line Install (Ubuntu)
curl -fsSL https://raw.githubusercontent.com/jhd3197/serverkit/main/install.sh | bash
Option 3: Manual Installation
See Installation Guide for detailed instructions.
Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS |
| CPU | 1 vCPU | 2+ vCPU |
| RAM | 1 GB | 2+ GB |
| Disk | 10 GB | 20+ GB |
| Docker | 24.0+ | Latest |
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Python 3.11, Flask, SQLAlchemy, Flask-SocketIO |
| Frontend | React 18, Vite, LESS |
| Database | SQLite / PostgreSQL |
| Web Server | Nginx, Gunicorn |
| Containers | Docker, Docker Compose |
| Security | ClamAV, TOTP (pyotp), Cryptography |
Documentation
| Document | Description |
|---|---|
| Installation Guide | Complete setup instructions |
| Deployment Guide | CLI commands and production deployment |
| API Reference | REST API documentation |
| Roadmap | Development roadmap and planned features |
| Contributing | How to contribute |
Project Structure
ServerKit/
├── backend/ # Flask API
│ ├── app/
│ │ ├── api/ # API endpoints
│ │ ├── models/ # Database models
│ │ └── services/ # Business logic
│ ├── config.py
│ └── requirements.txt
│
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API client
│ │ └── styles/ # LESS stylesheets
│ └── package.json
│
├── docs/ # Documentation
├── docker-compose.yml # Docker configuration
└── README.md
CLI Commands
ServerKit includes a management CLI:
# Service Management
serverkit start|stop|restart|status
# User Management
serverkit create-admin
serverkit reset-password
# Database
serverkit backup-db
serverkit restore-db <backup-file>
# Utilities
serverkit generate-keys
serverkit logs [service]
serverkit update
Configuration
Create a .env file from the example:
cp .env.example .env
Key configuration options:
# Required - Generate unique values!
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret
# Database (SQLite default, PostgreSQL for production)
DATABASE_URL=sqlite:///serverkit.db
# Your domain
CORS_ORIGINS=https://panel.yourdomain.com
Generate secure keys:
python -c "import secrets; print(secrets.token_hex(32))"
Notification Setup
ServerKit can send alerts to multiple channels:
Discord
- Create webhook: Server Settings → Integrations → Webhooks
- Copy URL to Settings → Notifications → Discord
Slack
- Create app: api.slack.com → Incoming Webhooks
- Copy URL to Settings → Notifications → Slack
Telegram
- Create bot via @BotFather
- Get chat ID from @userinfobot
- Configure in Settings → Notifications → Telegram
Security Features
Two-Factor Authentication
- TOTP-based (Google Authenticator, Authy, etc.)
- Backup codes for recovery
- Enable in Settings → Security
Malware Scanning
- ClamAV integration
- Quick scan / Full scan options
- Automatic quarantine
- Configure in Security → Settings
File Integrity Monitoring
- Baseline creation
- Change detection
- Alert on modifications
API Overview
Base URL: http://localhost:5000/api/v1
Authentication:
POST /auth/login # Login
POST /auth/register # Register
POST /auth/2fa/verify # 2FA verification
Applications:
GET /apps # List apps
POST /apps # Create app
GET /apps/:id # Get app
DELETE /apps/:id # Delete app
Security:
GET /security/status # Security summary
POST /security/scan/quick # Quick malware scan
GET /security/events # Security events
Notifications:
GET /notifications/config # Get config
PUT /notifications/config/:channel # Update channel
POST /notifications/test/:channel # Test channel
Full API documentation: docs/API.md
Contributing
Contributions are welcome! Please read CONTRIBUTING.md first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Roadmap
See ROADMAP.md for the full development plan.
Recent additions:
- Two-Factor Authentication (2FA)
- Discord/Slack/Telegram notifications
- ClamAV malware scanning
- File integrity monitoring
- Environment variable management
- Cron job management
Coming soon:
- Multi-server management
- Git deployment with webhooks
- Let's Encrypt wildcard SSL
- Email server management
- Backup to S3/B2
License
This project is licensed under the MIT License - see LICENSE for details.
Acknowledgments
- Inspired by Coolify, ServerPilot, and RunCloud
- UI inspired by modern admin dashboards
ServerKit - Simple. Modern. Self-hosted.
Report Bug ·
Request Feature