Juan Denis f677d760dd Add backup, monitoring, and deployment APIs
Introduces new API endpoints and services for backups, monitoring, and Git deployment. Adds security middleware, account lockout on failed logins, and improves domain/SSL management. Updates Dockerfiles, deployment configs, and frontend to support new features and UI components.
2026-01-17 12:08:02 -05:00

ServerKit

Modern, self-hosted server management panel - An open-source alternative to ServerPilot and CyberPanel.

License Python React


Overview

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.

Key Features

  • PHP / WordPress - PHP-FPM 8.2 with one-click WordPress installation
  • Python Apps - Deploy Flask and Django applications with Gunicorn
  • Docker Support - Manage containers directly from the dashboard
  • SSL Certificates - Automatic Let's Encrypt with auto-renewal
  • Database Management - MySQL/MariaDB and PostgreSQL support
  • Real-time Monitoring - CPU, RAM, disk, and network metrics
  • Modern UI - Dark-themed dashboard built with React

Screenshots

(Coming soon)


Tech Stack

Layer Technology
Backend Python 3.11+, Flask, SQLAlchemy
Frontend React 18, Vite, TailwindCSS
Database PostgreSQL / SQLite
Web Server Nginx
Containers Docker
Real-time WebSocket (Flask-SocketIO)

Requirements

  • Ubuntu 22.04+ / Debian 12+ (recommended)
  • Python 3.11+
  • Node.js 18+
  • Docker (optional, for container management)
  • Root or sudo access

Quick Start

Development Setup

# Clone the repository
git clone https://github.com/yourusername/ServerKit.git
cd ServerKit

# Backend setup
cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
flask run

# Frontend setup (new terminal)
cd frontend
npm install
npm run dev

Production Installation

# One-liner installation (coming soon)
curl -sSL https://get.serverkit.io | bash

Project Structure

ServerKit/
├── backend/                 # Flask API
│   ├── app/
│   │   ├── api/            # API routes
│   │   ├── models/         # Database models
│   │   ├── services/       # Business logic
│   │   └── utils/          # Helpers
│   ├── config.py
│   └── requirements.txt
│
├── frontend/               # React application
│   ├── src/
│   │   ├── components/    # Reusable components
│   │   ├── layouts/       # Layout components
│   │   ├── pages/         # Page components
│   │   └── services/      # API clients
│   └── package.json
│
├── agent/                  # Server monitoring agent
│   └── serverkit-agent.py
│
├── docker/                 # Docker configurations
│   ├── Dockerfile
│   └── docker-compose.yml
│
├── docs/                   # Documentation
├── ROADMAP.md             # Development roadmap
└── README.md

Supported Applications

PHP / WordPress

  • PHP-FPM 8.0, 8.1, 8.2, 8.3
  • One-click WordPress installation
  • WP-CLI integration
  • Automatic updates and backups

Python

  • Flask applications with Gunicorn
  • Django applications with static file handling
  • Virtual environment management
  • Multiple Python versions

Docker

  • Container management
  • Docker Compose support
  • Image management
  • Log streaming

Databases

  • MySQL / MariaDB
  • PostgreSQL
  • Redis (optional)

API Documentation

API runs on port 5000 by default.

Base URL: http://localhost:5000/api/v1

Authentication:
  POST   /auth/login          # Get JWT token
  POST   /auth/register       # Register new user
  POST   /auth/refresh        # Refresh token

Applications:
  GET    /apps                # List all apps
  POST   /apps                # Create new app
  GET    /apps/:id            # Get app details
  PUT    /apps/:id            # Update app
  DELETE /apps/:id            # Delete app

Domains:
  GET    /domains             # List domains
  POST   /domains             # Add domain
  DELETE /domains/:id         # Remove domain

System:
  GET    /system/metrics      # Server metrics
  GET    /system/logs         # System logs
  POST   /system/services     # Control services

Configuration

Create a .env file in the backend directory:

# Flask
FLASK_ENV=development
SECRET_KEY=your-secret-key

# Database
DATABASE_URL=sqlite:///serverkit.db

# JWT
JWT_SECRET_KEY=your-jwt-secret

# Server Agent
AGENT_TOKEN=your-agent-token

Roadmap

See ROADMAP.md for the detailed development plan.

Current Status: Phase 1 - Foundation

Phase Description Status
1 Foundation & Core In Progress
2 Server Agent Planned
3 PHP & WordPress Planned
4 Python Apps Planned
5 Docker Support Planned
6 Database Management Planned

Contributing

Contributions are welcome! Please read the Contributing Guide before submitting a PR.

  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

License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments


ServerKit - Simple. Modern. Self-hosted.

Languages
Python 54.3%
JavaScript 33.4%
SCSS 7.6%
Shell 4.3%
PowerShell 0.2%