Deploy, manage, and monitor servers.
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
Quick Start · Screenshots · Features · Architecture · Roadmap · Docs · Contributing · Discord
⏱️ Up and running in under 2 minutes
curl -fsSL https://serverkit.ai/install.sh | bashWorks on Ubuntu 22.04+, Debian 12+, Fedora, and RHEL/Rocky/AlmaLinux 9+. Sets up everything automatically.
Optional:
PANEL_DOMAIN=panel.example.comsets the domain and tries Let's Encrypt;SERVERKIT_OFFLINE_TARBALL=...installs from a local tarball.
sudo serverkit updateAtomic blue/green update with pre-flight checks, DB backup, migration, and
automatic rollback. Use --dry-run to preview, --branch dev for dev builds,
or --release [version] for release tarballs.
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://localhostSee the Installation Guide for step-by-step instructions.
| 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 |
Captured from a mock-data demo build — every hostname, IP, domain, and metric below is fictional.
| Dashboard | Services |
|---|---|
![]() |
![]() |
| Live server metrics, KPI cards, and recent activity | Static, Node.js, Python, PHP, and Docker apps |
| Docker | WordPress |
|---|---|
![]() |
![]() |
| Containers, images, volumes, and networks with live CPU/RAM | Per-site status, Quick Actions, and live health checks |
| Agent Fleet | Marketplace |
|---|---|
![]() |
![]() |
| Fleet health, version rollouts, and command queue | One-click app templates and installable extensions |
| Monitoring | Security |
|---|---|
![]() |
![]() |
| Live gauges, alert rules, and notification channels | Posture score, ClamAV, file integrity, firewall, Fail2Ban |
View all screenshots
| AI Assistant | Service Detail |
|---|---|
![]() |
![]() |
| Prompture-powered assistant that runs tools on your infra | Deployments, git connection, live usage, logs, and settings |
| Databases | SQL Console |
|---|---|
![]() |
![]() |
| MySQL / PostgreSQL / SQLite explorer with a source tree | Run SQL from the browser with a typed results grid |
| Domains | DNS Zones |
|---|---|
![]() |
![]() |
| SSL status, expiry tracking, and auto-renewal | Cloudflare, Route 53, DigitalOcean — full record editing |
| Backups | |
|---|---|
![]() |
![]() |
| Scheduled backups with S3/B2 sync and one-click restore | Postfix, Dovecot, OpenDKIM, SpamAssassin, and Roundcube |
| Cron Jobs | File Manager |
|---|---|
![]() |
![]() |
| Visual cron editor with human-readable timing | Browse, edit, and upload files with per-mount disk usage |
| Logs & Terminal | Servers |
|---|---|
![]() |
![]() |
| Log viewer, process list, journald, and SSH sessions | Every server in one panel with live CPU/RAM/disk telemetry |
| Remote Access | Settings |
|---|---|
![]() |
![]() |
| Expose NAT-ed services publicly via WireGuard-paired agents | Profile, appearance/branding, users, and connections |
| Login | |
|---|---|
![]() |
|
| Email/password sign-in with SSO and 2FA support |
The core is feature-complete. New capabilities ship as installable extensions through the built-in Marketplace — the core stays lean and stable, with ongoing work focused on UI polish and community-reported fixes.
| One-Click WordPress PHP-FPM 8.x sites published at real subdomains, with URL-swap previews, custom domains, and wildcard HTTPS. |
Any Stack Flask/Django on Gunicorn, Node.js on PM2, static sites — from Git, Docker, a manual path, or a zip upload. |
| Docker & Compose Image-update detection with one-click apply, auto-sleep for idle containers, CPU-driven auto-scaling, live logs, and terminal access. |
Marketplace 100+ one-click app templates on a declarative schema with auto-resolved secrets, hosts, and URLs — nothing hardcoded. |
| Build Packs Zero-Dockerfile deploys: inspects a repo and generates a Dockerfile + compose from a build plan. |
Automations Node-based visual automation for tasks, deployments, and CI/CD — cron, webhook, and event triggers, running in a managed container. Ships as an extension. |
| Previews & Snapshots Ephemeral PR preview environments, plus immutable, secret-masked config snapshots with diff and one-click restore. |
Projects & Environments Workspace → Project → Environment grouping, and a WordPress prod/staging/dev pipeline with code/DB promotion. |
| Domains & SSL Nginx virtual hosts, automatic Let's Encrypt with renewal, hardened TLS 1.2+/AEAD, Cloudflare-aware configs, automatic CAA. |
DNS Zones Full record management across Cloudflare, Route 53, and DigitalOcean — propagation checks and dynamic DNS for changing IPs. |
| Databases MySQL/MariaDB and PostgreSQL with user management, a live source tree, and a browser SQL console. |
Cloud Provisioning Spin up servers on DigitalOcean, Hetzner, Vultr, and Linode with cost tracking. |
| Connections Hub Git providers, clouds, DNS, registrars, SMTP relays, and S3/B2 storage — every external account in one place, encrypted at rest. |
Backups Scheduled app/database/file backups to S3, B2, or local with retention policies, one-click restore, and optional client-side encryption. |
| Files, FTP & Cron Web file manager with S3/B2 bucket browsing, vsftpd user management, and a visual cron editor. |
Email Server Postfix + Dovecot with DKIM/SPF/DMARC, SpamAssassin, Roundcube webmail, and forwarding rules. |
| Web Application Firewall Per-app ModSecurity v3 + OWASP Core Rule Set with detect/block modes and tunable paranoia. |
Passkeys & 2FA WebAuthn passwordless sign-in (hardware keys, Touch ID, Windows Hello) plus TOTP with backup codes. |
| Malware & Integrity ClamAV scanning with quarantine, file-integrity monitoring, and Lynis vulnerability audits. |
SSH & Hardening Fail2ban, SSH key management, IP allow/block lists, and automatic OS security updates. |
| Container Scanning Per-image CVE scanning with grype and SBOM generation with syft. |
Encrypted Secrets Provider credentials and secrets sealed with Fernet, plus an inbound webhook gateway for external automation. |
| Cross-Platform Agent Go agent for Linux, Windows, and macOS — HMAC-SHA256 auth over a real-time WebSocket gateway. Native Windows service + MSI, .deb/.rpm, ARM64. More → |
Fleet Management Inventory, approval queue, staged version rollouts, LAN auto-discovery, and an offline command queue. |
| Easy Enrollment Short-code pairing with fingerprint verification or pre-shared tokens; host credentials stored AES-GCM-encrypted. More → |
Fleet Monitor Cross-server heatmaps, metric comparisons, alert thresholds, anomaly detection, and capacity forecasting. |
| Server Templates Expected-state templates with drift detection, compliance dashboards, and auto-remediation. |
Remote Access Tunnels Expose a private/NAT'd service through an edge server over agent-managed WireGuard — no port forwarding. |
| Guided Onboarding Validate → prerequisites → Docker → pair agent, with a live progress log. |
Per-Server Proxy Opt-in Dockerized Traefik or Caddy per server with compose preview; host nginx stays the default. |
| Real-Time Metrics CPU, RAM, disk, and network over WebSocket, with historical retention and uptime tracking. |
GPU Monitoring NVIDIA utilization, memory, temperature, and per-process/per-container usage. |
| Status Pages Public pages with HTTP/TCP/DNS/Ping checks, component monitoring, and incident management. |
Notifications Discord, Slack, Telegram, HTML email, and webhooks — per-user channels, severity filters, and quiet hours. |
| Workspaces Multi-tenant isolation with quotas and member management. |
RBAC Admin/developer/viewer roles with granular per-feature read/write permissions. |
| SSO & OAuth Google, GitHub, OpenID Connect, and SAML 2.0 with account linking. |
API Keys Tiered keys with rate limiting, fine-grained scopes, usage analytics, and OpenAPI docs. |
| Audit Logging Every user action tracked, with a detailed activity dashboard. |
Webhooks & Shared Config Outbound subscriptions with HMAC signatures and retries, plus shared tags and variable groups. |
| Lean by Default The setup wizard installs only the extensions matching your use cases — add more anytime from the Marketplace. |
Sidebar Presets Full, Web Hosting, Email Admin, DevOps, or Minimal views with collapsible groups and per-user layouts. |
| Your Brand 8 preset accent colors plus a custom hex picker, and white-label logo, name, or banner. |
Dashboard Widgets Toggle and reorder widgets to fit your workflow. |
Nginx terminates TLS and splits traffic two ways: panel requests go to the Flask API, everything else is proxied to the Docker container serving that domain. The panel keeps its own state in SQLite or PostgreSQL, runs background work through a job scheduler and notification bus, and loads optional functionality from the extension runtime. Remote servers are managed by a Go agent that connects back over a Socket.IO namespace.
View as ASCII diagram
┌──────────────────┐
│ INTERNET │
└────────┬─────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ YOUR SERVER │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ NGINX (Reverse Proxy) │ │
│ │ :80 / :443 │ │
│ │ │ │
│ │ app1.com ──┐ app2.com ──┐ api.app3.com ──┐ /api/v1/ ──┐ │ │
│ └───────────────┼──────────────┼──────────────────┼──────────────┼────┘ │
│ │ proxy_pass │ proxy_pass │ proxy_pass │ │
│ ▼ ▼ ▼ │ │
│ ┌────────────────────────────────────────────────────────────┐ │ │
│ │ DOCKER CONTAINERS │ │ │
│ │ │ │ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │
│ │ │ WordPress │ │ Flask │ │ Node.js │ ... │ │ │
│ │ │ :8001 │ │ :8002 │ │ :8003 │ │ │ │
│ │ └─────┬─────┘ └───────────┘ └───────────┘ │ │ │
│ └──────────┼─────────────────────────────────────────────────┘ │ │
│ │ ▼ │
│ │ ┌─────────────────────────────────┐ │
│ │ │ SERVERKIT PANEL │ │
│ │ │ React SPA · Flask REST API │ │
│ │ │ Socket.IO · Jobs · Notify │ │
│ │ │ Extension runtime │ │
│ │ │ Gunicorn -w 1 (threaded) │ │
│ │ └────────────────┬────────────────┘ │
│ ▼ │ │
│ ┌──────────────────────────────────┐ ┌─────────────▼────────────────┐ │
│ │ DATABASES │ │ PANEL STATE │ │
│ │ MySQL :3306 PostgreSQL :5432 │ │ SQLite (default) or │ │
│ │ Redis :6379 MongoDB :27017 │ │ PostgreSQL · Alembic │ │
│ └──────────────────────────────────┘ └──────────────────────────────┘ │
└───────────────────────────────────────────────────────┼──────────────────┘
│
Socket.IO /agent (HMAC) │
+ HTTP long-poll fallback ▼
┌──────────────────────────────────────┐
│ REMOTE SERVERS — Go agent fleet │
│ server A · server B · server C │
└──────────────────────────────────────┘
View Full Architecture Documentation → — Request flow, extension platform, template system, port allocation, jobs, notifications, and the agent fleet.
ServerKit's core is feature-complete — every planned core phase has shipped, from the first Flask + React infrastructure to multi-server fleets, SSO, the automation engine, and the extension marketplace.
Development now happens in two places:
- 🧩 Extensions — new functionality ships as installable extensions through the Marketplace (100+ one-click templates and growing). The core stays lean; you install only what you need.
- ✨ Core polish — ongoing UI/UX refinements and fixes for issues reported by the community. No new core features are planned.
Full history: ROADMAP.md
| Document | Description |
|---|---|
| Architecture | System design, request flow, diagrams |
| Installation Guide | Complete setup instructions |
| Deployment Guide | CLI commands and production deployment |
| Agent | Install & run the multi-server agent (Linux/Windows/macOS) — separate repo |
| Agent Pairing | Secure short-code agent enrollment |
| API Reference | REST API endpoints |
| New Features | Endpoint & page reference for the latest dev features |
| Enhancements | Guide to the ten developer-experience, team/scale, fleet, and security capabilities |
| Changelog | Release history and notable changes |
| Roadmap | Development roadmap and planned features |
| Contributing | How to contribute |
| 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 (single threaded worker — -w 1 --threads N) |
| Containers | Docker, Docker Compose |
| Security | ClamAV, Lynis, Fail2ban, ModSecurity v3 + OWASP CRS, grype, syft, TOTP (pyotp), Fernet encryption |
| Auth | JWT, OAuth 2.0, OIDC, SAML 2.0, WebAuthn / passkeys |
| Postfix, Dovecot, SpamAssassin, Roundcube | |
| Agent | Go (multi-server), HMAC-SHA256, WebSocket |
Contributions are welcome! Please read CONTRIBUTING.md first.
fork → feature branch → commit → push → pull request
Priority areas: Marketplace extensions, UI/UX improvements, documentation, test coverage.
ServerKit is free and open source. If it saves you time, you can help keep it going:
- ⭐ Star the repo — it costs nothing and helps a lot
- 💖 GitHub Sponsors
- ☕ Buy Me a Coffee
TRC-20 has the lowest fees — usually under a dollar — so it's the friendliest option for a small donation. ERC-20 gas can cost more than the donation itself.
QR codes are generated locally by scripts/generate-funding-qr.mjs, which checksum-validates every address before encoding.
Faro — A modern desktop client for SFTP, FTP, SSH, and S3-compatible storage, from the same author. Save a server once, then browse its files in a dual-pane view and open a terminal against the same SSH session — plus drag-and-drop transfers, one-way directory sync, and edit-in-place. It even has an Agent Bridge that lets Claude Code (or any MCP agent) run commands on a box through your authenticated session, with per-command approval and no shared credentials.
ServerKit manages your servers from the browser; Faro is the desktop companion for hands-on file transfer, shells, and ad-hoc work across all your boxes. Grab a build →
LocalKit — Spin up local WordPress sites in one click. Each site runs as its own isolated Docker Compose project, and you can push code or push/pull databases straight to your ServerKit server through the serverkit-localkit extension.
DeviceKit — A unified Android device fleet & test-automation platform. Control a fleet of devices from one dashboard — run automations, stream screens in real time, catch visual regressions, and debug failures with AI-powered analysis.
Join the Discord to ask questions, share feedback, or get help with your setup.



























