Three orchestrators, one tool
Drive Docker, Docker Swarm, and Kubernetes from the same UI, with the same mental model. Stop switching products just to switch runtimes.
Castor is the open-source, self-hosted platform to manage, deploy, and orchestrate containers across Docker, Docker Swarm, and Kubernetes — from a single modern interface. Helm built in, a 50+ app marketplace, enterprise SSO, and security by default. Up and running in under two minutes.
Apache-2.0 ~67 MB distroless image runs as non-root amd64 + arm64
docker run -d --name castor -p 8080:8080 -p 8443:8443 -v /var/run/docker.sock:/var/run/docker.sock:rw -v castor-data:/data --restart unless-stopped ghcr.io/yannleonard/castor:latest
Works with the stack you already run
Plus a 50+ app marketplace — Postgres, MySQL, MariaDB, MongoDB, Redis, Nginx, Grafana, and more — deployable in one click.
Everything you need
Castor brings every orchestrator, every lifecycle action, and enterprise-grade security into one coherent, real-time UI. No tab-hopping between three different tools.
Drive Docker, Docker Swarm, and Kubernetes from the same UI, with the same mental model. Stop switching products just to switch runtimes.
A clean, light command center: KPI cards for running containers, CPU, memory, images, volumes, and networks, plus live donut and top-by-resource charts that update in real time.
Stream container logs, watch live CPU/memory stats, and drop into an interactive shell — Docker exec and Kubernetes pod exec — straight from the browser.
Manage Helm end to end: add repos, search charts, install, upgrade, roll back, uninstall, inspect history and values. No CLI context-switch required.
Deploy Postgres, Redis, Nginx, Grafana and 50+ more from curated templates with official logos. Add your own templates, point at remote catalogs, and pull from private registries with encrypted credentials.
Set CPU/memory limits and reservations for Docker and Swarm, and see Kubernetes QoS classes — Guaranteed, Burstable, BestEffort — at a glance. Scale, drain nodes, and rolling-update without guesswork.
Local auth with TOTP 2FA, plus SSO via LDAP/LDAPS and Microsoft Entra ID (OIDC). Resource-scoped RBAC with admin/operator/viewer roles and an append-only audit log of every change.
Back up and restore Docker volumes from the UI, so your stateful workloads aren't a single docker volume rm away from disaster.
Secrets sealed with AES-256-GCM, argon2id password hashing, protected containers, a host-mount guard, and per-route AAL step-up. Shipped as a distroless, non-root image. Secure out of the box — not after a hardening guide.
The difference
Most tools force a choice: a Docker tool here, a Kubernetes tool there, Swarm as an afterthought — each with its own UI, its own auth, its own learning curve. Castor unifies all three behind one interface, one login, one permission model, and one real-time experience. Manage a homelab Docker host and a production Kubernetes cluster in the same session.
Built from scratch, Apache-2.0, 100% self-hosted. Your clusters, your data, your rules.
Capabilities
One self-hosted image, three orchestrators, and the full lifecycle — from a container's logs to a Kubernetes HPA. Here is the complete feature set, grouped by area.
| Area | Capability | What you get |
|---|---|---|
| Docker | Container lifecycle | Start, stop, restart, remove — with confirmation guards on protected/system containers. |
| Live logs, stats & exec | Stream logs, watch live CPU/memory, and open an interactive exec shell in the browser. | |
| Images, networks & volumes | Pull/delete images, manage networks and volumes, all from one view. | |
| Compose stacks | Visual builder + raw YAML editor, deploy and tear down stacks. | |
| Docker Swarm | Service lifecycle | Create, scale, rolling-update, rolling-restart and remove services; drain nodes. |
| Secrets & configs | Manage Swarm secrets and configs (values are write-only, never shown). | |
| Kubernetes | Workloads | Pods, deployments and nodes — scale, rollout-restart, delete. |
| Apply manifests | Server-side apply of raw YAML with field-manager tracking. | |
| Cluster objects | Namespaces, services, configmaps, secrets, events and Ingress. | |
| Storage | PersistentVolumes, PVCs and StorageClasses; create/delete PVCs. | |
| Autoscaling & QoS | HorizontalPodAutoscalers, plus visible QoS classes (Guaranteed / Burstable / BestEffort). | |
| Live metrics & pod exec | Node/pod metrics via metrics-server and an interactive pod exec terminal. | |
| Helm | Repositories & charts | Add/update/remove repos, search charts across cached indexes. |
| Release lifecycle | Install, upgrade, roll back, uninstall; inspect history and values. | |
| Marketplace | 50+ one-click apps | Postgres, MySQL, MariaDB, MongoDB, Redis, Nginx, Grafana and more — with official logos. |
| Custom & private sources | Add your own templates, point at remote catalogs, pull from private registries with encrypted credentials. | |
| Observability | BI dashboard | KPI cards (running, CPU, memory, images, volumes, networks) + live donut and top-by-resource charts. |
| Host metrics | Per-host CPU, RAM, disk and engine info at a glance. | |
| Resources | Limits & reservations | Set CPU/memory limits and reservations for Docker and Swarm workloads. |
| Backup & restore | Back up and restore Docker volumes straight from the UI. | |
| Security & access | Authentication | Local auth + TOTP 2FA, plus SSO via LDAP/LDAPS and Microsoft Entra ID (OIDC). |
| RBAC & audit | Resource-scoped RBAC (admin / operator / viewer) and an append-only audit log of every change. | |
| Sealed secrets | Secrets sealed with AES-256-GCM; argon2id password hashing; secret values never returned by the API. | |
| Hardened runtime | Distroless, non-root (uid 65532) image; host-mount guard; protected containers; per-route AAL step-up. | |
| Platform | Single small image | ~67 MB distroless, multi-arch (amd64 + arm64), one container, HTTP on 8080 and HTTPS on 8443, with persistent data. |
| First-run bootstrap | Boots straight to admin creation — no default account, zero seeded data. | |
| Open source | Apache-2.0, built 100% from scratch, self-hosted — your clusters, your data. |
Security by default
Castor sits at a privileged spot in your infrastructure, so security isn't a checkbox — it's the foundation. Authentication, authorization, secret handling, and the runtime image are all locked down out of the box.
Local accounts with TOTP two-factor, plus SSO via LDAP/LDAPS and Microsoft Entra ID (OIDC). Per-route AAL step-up for sensitive actions.
Built-in admin, operator, and viewer roles; permissions scoped to resources so people see and touch only what they should.
Every mutating action writes exactly one immutable row. Know who did what, when — and prove it.
Sensitive data, including TOTP secrets and private registry credentials, is sealed with authenticated AES-256-GCM encryption at rest.
Passwords are hashed with argon2id, a modern memory-hard function — no fast, crackable hashes.
Castor's own container and data volume can never be deleted from the UI, and a host-mount guard blocks risky bind mounts before they happen.
Ships on distroless/static:nonroot (uid 65532): no shell, no package manager, read-only root filesystem, all Linux capabilities dropped, no-new-privileges.
Mount the Docker socket read-only to inspect safely; explicitly opt in to read-write for the full lifecycle. Least privilege, by design.
Secrets sealed, roles scoped, every action logged, and a hardened runtime — before you write a single line of config.
Quickstart
Install Castor with Docker on Linux, macOS or Windows. Choose your operating system to get the right command.
curl -fsSL https://raw.githubusercontent.com/Yannleonard/Castor/main/scripts/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/Yannleonard/Castor/main/scripts/install.sh | sh
irm https://raw.githubusercontent.com/Yannleonard/Castor/main/scripts/install.ps1 | iex
Requires Docker Desktop on macOS/Windows, or Docker Engine on Linux. The installer pulls the Castor image and starts the container.
Back up your Castor data volume. It contains the database, TLS certificates and encryption key needed to restore your installation.
Open source, for real
Castor is licensed under Apache-2.0 — permissive, patent-protected, and friendly to commercial use. It's built and maintained by IT Leonard (LEONARD-IT / GTEK-IT).
Use it, fork it, ship it. No per-node fees, no locked-away enterprise tier for SSO and audit.
A single static Go binary serving the API and the React UI. Pure-Go SQLite — no external database to run.
Issues, PRs, and good first issues welcome. CI gates every change with linting, race-tested Go, UI tests, and vulnerability scanning.
IT Leonard (LEONARD-IT / GTEK-IT) · Apache-2.0 © 2026
Questions
Yes. Castor is open source under the Apache-2.0 license — free to use, modify, and self-host, including in commercial settings. There's no paywalled tier: SSO, RBAC, and the audit log are all included.
Entirely self-hosted. Castor runs as a single container on your own infrastructure and stores its state in a local SQLite database on a volume you control. Live cluster state is fetched on demand and never sent anywhere — there is no cloud, no telemetry phone-home.
Yes. Docker (full lifecycle, logs, stats, exec, images/networks/volumes), Docker Swarm (services, scaling, rolling updates, node drain, secrets/configs), and Kubernetes (pods, deployments, scale, rollout restart, server-side apply, pod exec, metrics, storage, HPA, Ingress, and more) — plus Helm — all from one UI.
Castor is built for real workloads: a hardened distroless non-root image, security by default, an append-only audit log, automatic schema migrations on upgrade, and CI that race-tests the Go core and scans dependencies on every change. Start read-only, then opt into write access when you're ready.
Use the one-line installer for Linux/macOS or Windows PowerShell in the Quickstart section. Docker is required; the installer pulls the image and starts the container.
Defense in depth: the Docker socket is read-only by default, Castor runs as a non-root user (never root), secrets are sealed with AES-256-GCM, passwords use argon2id, access is gated by resource-scoped RBAC with optional 2FA and SSO, and its own container and data volume are protected from deletion. For hardened setups, you can front the socket with a scoped socket-proxy.
One UI for Docker, Swarm, and Kubernetes. Open source, self-hosted, secure by default — running in under two minutes.