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


License Python React Docker

Flask Nginx Let's Encrypt MySQL PostgreSQL Ubuntu


Features · Quick Start · Documentation · Architecture · Contributing


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.


Architecture

View How It Works
                          ┌──────────────────┐
                          │     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 →

Includes: Request flow diagrams, template system, port allocation, database linking, and troubleshooting guides.


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

Workflow-Builder

View More Screenshots

Docker

Workflow Builder

Templates

Applications

Applications Logs


Quick Start

Option 1: One-Line Install (Recommended)

curl -fsSL https://raw.githubusercontent.com/jhd3197/serverkit/main/install.sh | bash

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

Option 2: Docker

# 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 3: Manual Installation

See Installation Guide 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
Architecture System design, request flow, and diagrams
Installation Guide Complete setup instructions
Deployment Guide CLI commands and production deployment
API Reference REST API documentation
Roadmap Development roadmap and planned features
Contributing 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:

# Service Management
serverkit start|stop|restart|status

# User Management
serverkit create-admin
serverkit reset-password

# Database
serverkit backup-db
serverkit restore-db <backup-file>

# Utilities
serverkit generate-keys
serverkit logs [service]
serverkit update

Configuration

Create a .env file from the example:

cp .env.example .env

Key configuration options:

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

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


Contributing

Contributions are welcome! Please read 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

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

  •