Kubeploy is a streamlined dashboard designed to simplify the deployment and management of web services and databases using Kubernetes and Docker.
- Backend Framework: Flask (Python)
- Frontend: Tailwind CSS, HTMX, Jinja2 Templates
- Database:
- Internal: SQLite (for storing application state, deployment history, and logs)
- Supported Services: MySQL, PostgreSQL, MongoDB, Elasticsearch
- Infrastructure:
- Containerization: Docker
- Orchestration: Kubernetes (via Python Kubernetes Client)
- Async Processing: Celery with Redis (for backups, restores, and long-running tasks)
- Dependency Management:
uv
- Flexible Source: Deploy from a Git repository (using
Dockerfile) or a pre-built Docker image. - Smart Configuration: Automatic assignment with customizable overrides for:
- Networking: NodePort services, custom ports, protocols.
- Storage: Persistent Volume Claims (PVC) with custom sizes.
- Scaling: Replica counts.
- Organization: Namespaces.
- Resources: Timeouts and deployment versions.
- Dashboard: Centralized view for all services.
- History & Logging:
- Tracks deployment history, status, and errors.
- Archives deployment configurations (YAML, images, repositories).
- Database Operations:
- Manage backups and restores.
- Asynchronous import/export capabilities.
- Authentication: Simple YAML-based username/password authentication.
- Dashboard: Overview of current system status.
- Web: Manage web application deployments.
- Database: Manage database instances and backups.
- Storage: Manage persistent volumes and storage classes.
- Settings: Application configuration and user settings.
The internal SQLite database persists the following deployment artifacts:
- Deploy History & Status
- Configuration Snapshots (YAML, Image, Repository)
- Network Allocations (NodePorts, Internal Ports, Protocols)
- Resource Definitions (Replicas, Timeouts, Namespaces)
- Error Logs