v0.6 · alpha · MIT
Keel

One binary. Zero dependencies. Full Docker control.

terminal
$ curl -fsSL https://getkaze.dev/keel/install.sh | sudo bash $ keel
View on GitHub Docs
Keel dashboard

Born from frustration

Instead of juggling docker compose files, SSH sessions, and scattered scripts, Keel gives you a single binary that handles everything. Spin up local services, manage remote hosts, all through a clean dashboard or a handful of CLI commands.

The invisible foundation

Named after the keel, the structural backbone of a ship. It keeps your development infrastructure steady and on course, just like its namesake.

Real-time dashboard

Live container status, log streaming via SSE, interactive terminal via WebSocket with multi-tab support, and inline config editing.

Full metrics

CPU, memory, disk, load average, uptime, and per-container Docker stats. HTTP or command-based health checks with configurable intervals.

Local and remote

Manage local and remote Docker hosts from the same interface. Switch targets with a single command. Dev Mode for hot-reload.

Simple by design

Services as plain JSON, no YAML, no templating. Bootstrap with seeders. One ~10MB binary, zero external dependencies.

Keel metrics

Metrics: real-time host and container monitoring

Configuration

Plain JSON. No magic. No templating engine.

targets.json
{
  "targets": {
    "local": {
      "host": "127.0.0.1",
      "description": "Docker local"
    },
    "staging": {
      "host": "10.0.1.42",
      "ssh_user": "deploy",
      "ssh_key": "~/.ssh/staging.pem",
      "description": "AWS EC2 Staging"
    }
  },
  "default": "local"
}
service.json
{
  "name": "traefik",
  "group": "infra",
  "image": "traefik:v2.11",
  "network": "keel-net",
  "ports": {
    "internal": 80,
    "external": 80
  },
  "health_check": {
    "type": "http",
    "url": "http://localhost:8080/api/overview",
    "interval": 10
  }
}