Skip to content

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

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

Docker β€” Full container and Docker Compose management

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

Git Deployment β€” GitHub/GitLab webhooks, auto-deploy on push, branch selection, rollback, zero-downtime deployments

πŸ—οΈ Infrastructure

Domain Management β€” Nginx virtual hosts with easy configuration

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

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

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 Overview β€” Centralized dashboard with server grouping, tagging, and health monitoring

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

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

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


πŸš€ 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 β€” Auto-upgrade, bulk ops, offline command queue
  • Cross-server monitoring β€” Fleet dashboard, anomaly detection, alerting
  • Agent plugin system β€” Extensible agent with custom metrics, commands, health checks
  • Server templates & config sync β€” Drift detection, compliance dashboards
  • Multi-tenancy β€” Workspaces, team isolation, per-workspace settings
  • DNS zone management β€” Cloudflare, Route53, DigitalOcean integrations
  • Status pages β€” Public status page, health checks, incident management

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, LESS, 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: Agent plugin system, fleet management, DNS integrations, status pages, UI/UX improvements, documentation.


πŸ’¬ 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