# ServerKit

Modern, self-hosted server management panel
An open-source alternative to ServerPilot, RunCloud, and Coolify

License Python React Docker

--- ## 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

Dashboard

Applications

--- ## Quick Start ### Option 1: Docker (Recommended) ```bash # 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) ```bash curl -fsSL https://raw.githubusercontent.com/jhd3197/serverkit/main/install.sh | bash ``` ### Option 3: Manual Installation See [Installation Guide](docs/INSTALLATION.md) 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](docs/INSTALLATION.md) | Complete setup instructions | | [Deployment Guide](docs/DEPLOYMENT.md) | CLI commands and production deployment | | [API Reference](docs/API.md) | REST API documentation | | [Roadmap](ROADMAP.md) | Development roadmap and planned features | | [Contributing](CONTRIBUTING.md) | 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: ```bash # Service Management serverkit start|stop|restart|status # User Management serverkit create-admin serverkit reset-password # Database serverkit backup-db serverkit restore-db # Utilities serverkit generate-keys serverkit logs [service] serverkit update ``` --- ## Configuration Create a `.env` file from the example: ```bash cp .env.example .env ``` Key configuration options: ```env # 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: ```bash python -c "import secrets; print(secrets.token_hex(32))" ``` --- ## Notification Setup ServerKit can send alerts to multiple channels: ### Discord 1. Create webhook: Server Settings → Integrations → Webhooks 2. Copy URL to Settings → Notifications → Discord ### Slack 1. Create app: api.slack.com → Incoming Webhooks 2. Copy URL to Settings → Notifications → Slack ### Telegram 1. Create bot via @BotFather 2. Get chat ID from @userinfobot 3. 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](docs/API.md) --- ## Contributing Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) first. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request --- ## Roadmap See [ROADMAP.md](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](LICENSE) for details. --- ## Acknowledgments - Inspired by [Coolify](https://coolify.io), [ServerPilot](https://serverpilot.io), and [RunCloud](https://runcloud.io) - UI inspired by modern admin dashboards ---

ServerKit - Simple. Modern. Self-hosted.
Report Bug · Request Feature