A modern, "Cloud Run on Bare Metal" Platform-as-a-Service (PaaS) interface built on top of K3s. This project provides a developer-friendly experience for deploying applications with automatic scaling, isolation, and infrastructure provisioning.
- 🖥️ Multi-Cluster Dashboard: Manage multiple K3s clusters from a single interface.
- 📊 Real-time Resource Sync: Automated synchronization of Pods, Services, and Nodes via Go Agent heartbeats.
- 📺 Interactive Terminal: Integrated
xterm.jsfor direct WebSocket-based terminal access to Pods. - � Live Log Streaming: Real-time log multiplexing for deployments and individual pods.
- ⚡ Batch Command System: Reliable command execution tracking (Pending/Sent/Success/Failed) with WebSocket acknowledgments.
- 🎨 Modern UI/UX: Premium dashboard built with React 19, featuring Monaco Editor and fluid animations.
- �🛡️ Virtual Cluster Isolation: Native namespace isolation with pre-configured
NetworkPoliciesandRoleBindings. - 📉 Scale-to-Zero: Integration with Sablier and Traefik for automatic scaling based on request traffic.
- 📦 Compose-to-K8s: Native support for
docker-compose.ymlconversion via Kompose. - 🏗️ Auto-Provisioning: Automated infrastructure bootstrapping (GarageHQ S3 & CloudNativePG) via K3s Helm Controller.
- 🔐 Secure Access: Built-in SSH access to pods via SSH Piper integration.
The project consists of three main components:
| Component | Stack | Role |
|---|---|---|
| Frontend | React + TanStack Router + Vite | Dashboard UI, Monaco Editor, Xterm.js |
| Control Plane | TypeScript + Bun + Elysia | Centralized Backend, Auth (Better Auth), Orchestration |
| Cluster Agent | GoLang | Runs in K3s clusters, WebSocket tunnel, K8s CRUD |
- Database: PostgreSQL (via Drizzle ORM)
- Networking: Traefik (Ingress), Sablier (Scale-to-zero)
- Object Store: GarageHQ (S3-compatible)
- Communication: Protobuf over WebSockets
- React 19, TanStack Router & Query, Tailwind CSS, Shadcn UI, Biome.
- Bun, Elysia, Drizzle ORM, Better Auth.
- Go, Kubernetes
client-go, Protobuf.
cd backend
bun install
cp .env.example .env # Configure your DB and Auth providers
bun run db:push
bun run devcd frontend
bun install
bun run devBuild and run the agent inside your K3s cluster nodes:
cd agent
go build -o agent .
./agent --addr <BACKEND_URL> --token <CLUSTER_TOKEN>The Go Agent uses the K3s Helm Controller (HelmChart CRD) to automatically install infrastructure components like GarageHQ and CloudNativePG if they are missing from the cluster.
Applications are isolated by default. The agent enforces NetworkPolicies that deny all ingress/egress except from the Traefik ingress controller and to the shared database/S3 services.
When a user deploys via docker-compose.yml, the agent parses it and automatically injects DATABASE_URL and S3_BUCKET environment variables into the containers based on the auto-provisioned resources.
This project is licensed under the MIT License - see the LICENSE file for details.