Skip to content

jhd3197/ServerKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

509 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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

GitHub Stars License Python React Flask Nginx Let's Encrypt


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


Dashboard


🎯 Features

πŸš€ Apps & Deployment

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

Workflow Builder β€” Node-based visual automation for server tasks, deployments, and CI/CD

Environment Pipeline β€” Multi-environment management for WordPress (Prod/Staging/Dev) with code/DB promotion

Docker β€” Full container and Docker Compose management with real-time log streaming and terminal access

Marketplace β€” Over 60+ one-click templates for popular apps (Immich, Ghost, Authelia, etc.)

πŸ—οΈ Infrastructure

Domain Management β€” Nginx virtual hosts with easy configuration

DNS Zone Management β€” Full DNS record management with propagation checking (A, AAAA, CNAME, MX, TXT, etc.)

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

Databases β€” MySQL/MariaDB and PostgreSQL with user management and query interface

Cloud Provisioning β€” Provision servers on DigitalOcean, Hetzner, Vultr, and Linode with cost tracking

Firewall β€” UFW/firewalld with visual rule management and port presets

Cron Jobs β€” Schedule tasks with a visual editor

File Manager β€” Browse, edit, upload, and download files via web interface

FTP Server β€” Manage vsftpd users and access

Backup & Restore β€” Automated backups to S3, Backblaze B2, or local storage with scheduling, retention policies, and one-click restore

Email Server β€” Postfix + Dovecot with DKIM/SPF/DMARC, SpamAssassin, Roundcube webmail, email forwarding rules

πŸ”’ Security

Two-Factor Auth β€” TOTP-based with backup codes

Malware Scanning β€” ClamAV integration with quarantine

File Integrity Monitoring β€” Detect unauthorized file changes

Fail2ban & SSH β€” Brute force protection, SSH key management, IP allowlist/blocklist

Vulnerability Scanning β€” Lynis security audits with reports and recommendations

Automatic Updates β€” unattended-upgrades / dnf-automatic for OS-level patching

πŸ–₯️ Multi-Server Management

Agent-Based Architecture β€” Go agent with HMAC-SHA256 authentication and real-time WebSocket gateway

Fleet Management β€” Agent lifecycle control with version rollouts, approval queue, network discovery, and command queue

Fleet Monitor β€” Cross-server heatmaps, metric comparison charts, alert thresholds, anomaly detection, and capacity forecasting

Agent Plugins β€” Extensible plugin system with capabilities, permissions, and per-server installation

Server Templates β€” Configuration templates with compliance tracking, drift detection, and auto-remediation

Remote Docker β€” Manage containers, images, volumes, networks, and Compose projects across all servers

API Key Rotation β€” Secure credential rotation with acknowledgment handshake

Cross-Server Metrics β€” Historical metrics with comparison charts and retention policies

πŸ“Š Monitoring & Alerts

Real-time Metrics β€” CPU, RAM, disk, network monitoring via WebSocket

Uptime Tracking β€” Historical server uptime data and visualization

Status Pages β€” Public status pages with HTTP/TCP/DNS/Ping health checks, component monitoring, and incident management

Notifications β€” Discord, Slack, Telegram, email (HTML templates), and generic webhooks

Per-User Preferences β€” Individual notification channels, severity filters, and quiet hours

πŸ‘₯ Team & Access Control

Multi-User β€” Admin, developer, and viewer roles with team invitations

Workspaces β€” Multi-tenant workspace isolation with quotas and member management

RBAC β€” Granular per-feature permissions (read/write per module)

SSO & OAuth β€” Google, GitHub, OpenID Connect, and SAML 2.0 with account linking

Audit Logging β€” Track all user actions with detailed activity dashboard

API Keys β€” Tiered API keys (standard/elevated/unlimited) with rate limiting, usage analytics, and OpenAPI documentation

Webhook Subscriptions β€” Event-driven webhooks with HMAC signatures, retry logic, and custom headers

🎨 Customization

Sidebar Presets β€” Switch between Full, Web Hosting, Email Admin, DevOps, and Minimal views with one click

Collapsible Navigation β€” Sidebar groups auto-expand on navigation and collapse when switching sections

Accent Colors β€” 8 preset accent colors plus custom hex picker

Custom Branding β€” White-label the sidebar with your own logo, brand name, or full-width banner

Dashboard Widgets β€” Toggle and reorder dashboard widgets to fit your workflow


πŸš€ 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, Lynis
  • Firewall β€” UFW/firewalld 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, Roundcube
  • Team & permissions β€” RBAC, invitations, audit logging
  • API enhancements β€” API keys, rate limiting, OpenAPI docs, webhook subscriptions
  • SSO & OAuth β€” Google, GitHub, OIDC, SAML
  • Database migrations β€” Flask-Migrate/Alembic, versioned schema
  • Agent fleet management β€” Version rollouts, approval queue, discovery, command queue
  • Cross-server monitoring β€” Fleet heatmaps, comparison charts, anomaly detection, capacity forecasting
  • Agent plugin system β€” Extensible agent with capabilities, permissions, per-server install
  • Server templates & config sync β€” Drift detection, compliance dashboards, auto-remediation
  • Multi-tenancy β€” Workspaces with quotas, member management, isolation
  • DNS zone management β€” Full record management with propagation checking
  • Status pages β€” Public status pages with health checks, incident management
  • Cloud provisioning β€” DigitalOcean, Hetzner, Vultr, Linode with cost tracking
  • Customizable sidebar β€” Collapsible groups, view presets, accent colors, white-label branding

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, Flask-Migrate
Frontend React 18, Vite, SCSS, Recharts
Database SQLite / PostgreSQL
Web Server Nginx, Gunicorn (GeventWebSocket)
Containers Docker, Docker Compose
Security ClamAV, Lynis, Fail2ban, TOTP (pyotp), Fernet encryption
Auth JWT, OAuth 2.0, OIDC, SAML 2.0
Email Postfix, Dovecot, SpamAssassin, Roundcube
Agent Go (multi-server), HMAC-SHA256, WebSocket

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md first.

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

Priority areas: Cloud provider integrations, marketplace extensions, UI/UX improvements, documentation, test coverage.


πŸ’¬ Community

Discord

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


⭐ Star History

Star History Chart


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