Skip to content

ServerKit is a lightweight, modern server control panel for managing web applications, databases, and services on your VPS or dedicated server. Built with Python/Flask backend and React frontend.

Notifications You must be signed in to change notification settings

jhd3197/ServerKit

Repository files navigation

ServerKit

server-kit

Self-hosted infrastructure, made simple.

A lightweight, modern server control panel for managing web apps, databases, Docker containers, and security β€” without the complexity of Kubernetes or the cost of managed platforms.

English | EspaΓ±ol | δΈ­ζ–‡η‰ˆ | PortuguΓͺs


Linux Docker Discord

License Python React Flask Nginx Let's Encrypt


Features Β· Quick Start Β· Screenshots Β· Architecture Β· Roadmap Β· Docs Β· Contributing Β· Discord


Dashboard


🎯 Features

Apps & Containers

🐘 PHP / WordPress β€” PHP-FPM 8.x with one-click WordPress installation

🐍 Python Apps β€” Deploy Flask and Django with Gunicorn

🟒 Node.js β€” PM2-managed applications with log streaming

🐳 Docker β€” Full container and Docker Compose management

πŸ”‘ Environment Variables β€” Secure, encrypted per-app variable management

Infrastructure

🌐 Domain Management β€” Nginx virtual hosts with easy configuration

πŸ”’ SSL Certificates β€” Automatic Let's Encrypt with auto-renewal

πŸ—„οΈ Databases β€” 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 Auth β€” TOTP-based with backup codes

🦠 Malware Scanning β€” ClamAV integration with quarantine

πŸ“‹ File Integrity Monitoring β€” Detect unauthorized file changes

🚨 Security Alerts β€” Real-time threat notifications

🧱 Fail2ban & SSH β€” Brute force protection and SSH key management

Monitoring & Alerts

πŸ“Š Real-time Metrics β€” CPU, RAM, disk, network monitoring via WebSocket

πŸ“ˆ Uptime Tracking β€” Historical server uptime data

πŸ”” Notifications β€” Discord, Slack, Telegram, and generic webhooks

πŸ–₯️ Multi-Server β€” Agent-based remote server monitoring and management


πŸš€ Quick Start

⏱️ Up and running in under 2 minutes

Option 1: One-Line Install (Recommended)

curl -fsSL https://serverkit.ai/install.sh | bash

Works on Ubuntu 22.04+ and Debian 12+. Sets up everything automatically.

Option 2: Docker

git clone https://github.com/jhd3197/ServerKit.git
cd ServerKit
cp .env.example .env       # then edit .env with your secrets
docker compose up -d       # access at http://localhost

Option 3: Manual Installation

See the Installation Guide for step-by-step instructions.

Requirements

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

πŸ“Έ Screenshots

Workflow-Builder

View More Screenshots

Docker

Workflow Builder

Templates

Applications

Applications Logs


πŸ—οΈ Architecture

                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                          β”‚     INTERNET     β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                   β”‚
                                   β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                            YOUR SERVER                                    β”‚
β”‚                                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚                      NGINX (Reverse Proxy)                          β”‚ β”‚
β”‚  β”‚                         :80 / :443                                  β”‚ β”‚
β”‚  β”‚                                                                     β”‚ β”‚
β”‚  β”‚    app1.com ──┐      app2.com ──┐      api.app3.com ──┐            β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                  β”‚ proxy_pass      β”‚ proxy_pass          β”‚ proxy_pass    β”‚
β”‚                  β–Ό                 β–Ό                     β–Ό               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚                      DOCKER CONTAINERS                              β”‚ β”‚
β”‚  β”‚                                                                     β”‚ β”‚
β”‚  β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”‚ β”‚
β”‚  β”‚    β”‚ WordPress β”‚    β”‚   Flask   β”‚    β”‚  Node.js  β”‚    ...          β”‚ β”‚
β”‚  β”‚    β”‚   :8001   β”‚    β”‚   :8002   β”‚    β”‚   :8003   β”‚                 β”‚ β”‚
β”‚  β”‚    β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚             β”‚                                                            β”‚
β”‚             β–Ό                                                            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚                        DATABASES                                    β”‚ β”‚
β”‚  β”‚    MySQL :3306    PostgreSQL :5432    Redis :6379                  β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

View Full Architecture Documentation β†’ β€” Request flow, template system, port allocation, database linking, and troubleshooting.


πŸ—ΊοΈ Roadmap

  • Core infrastructure β€” Flask + React + JWT + WebSocket
  • Application management β€” PHP, Python, Node.js, Docker
  • Domain & SSL β€” Nginx virtual hosts, Let's Encrypt
  • Databases β€” MySQL, PostgreSQL
  • File & FTP management
  • Monitoring & alerts β€” Metrics, webhooks, uptime tracking
  • Security β€” 2FA, ClamAV, file integrity, Fail2ban
  • Firewall β€” UFW integration
  • Multi-server management β€” Go agent, centralized dashboard
  • Git deployment β€” Webhooks, auto-deploy, rollback, zero-downtime
  • Backup & restore β€” S3, Backblaze B2, scheduled backups
  • Email server β€” Postfix, Dovecot, DKIM/SPF/DMARC
  • Team & permissions β€” RBAC, audit logging
  • Mobile app β€” React Native with push notifications
  • Plugin marketplace β€” Extensions, custom widgets, themes

Full details: ROADMAP.md


πŸ“– Documentation

Document Description
Architecture System design, request flow, diagrams
Installation Guide Complete setup instructions
Deployment Guide CLI commands and production deployment
API Reference REST API endpoints
Roadmap Development roadmap and planned features
Contributing How to contribute

🧱 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

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md first.

fork β†’ feature branch β†’ commit β†’ push β†’ pull request

Priority areas: Backup implementations, additional notification channels, UI/UX improvements, documentation.


πŸ’¬ Community

Discord

Join the Discord to ask questions, share feedback, or get help with your setup.


ServerKit β€” Simple. Modern. Self-hosted.

Report Bug Β· Request Feature

Made with ❀️ by Juan Denis

About

ServerKit is a lightweight, modern server control panel for managing web applications, databases, and services on your VPS or dedicated server. Built with Python/Flask backend and React frontend.

Topics

Resources

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors 3

  •  
  •  
  •