cardinal-wings: the panel API takes shape

wings now has a full REST surface for building a control panel — async tasks, node routing, metrics, streaming logs and exec — plus automated release builds.

The cardinal-wings project (the REST daemon meant to power a future web

panel) passed a milestone: the API surface is now broad enough to build a

panel against, and every push is automatically built and released by CI.

What wings can do now

  • Full container lifecycle — list (with filters and pagination), create,

inspect, start/stop/restart/kill, remove, stats, and logs with SSE

streaming (follow=1).

  • Images — list, inspect, remove, tag, push, Docker Hub search, and async

pull.

  • Blueprints — the official registry catalog, install and uninstall, all

async via /v1/tasks.

  • Cluster/v1/nodes with live background health checks, cluster

health/replicas/containers, and ?node=<name> routing on every resource

endpoint so one panel can manage many servers.

  • Services & functions — create/scale/remove services and

deploy/invoke/remove functions through cardinal's orchestrator.

  • Panel conveniences/v1/self (role of the current key),

/v1/system/info (dashboard aggregate with CPU/memory per node),

/v1/metrics (Prometheus), and a uniform error format.

Automated releases

The repository now has a build pipeline: lint, race-tested unit tests, and

linux/amd64 + arm64 binaries with the tag version embedded. Pushing a v*

tag publishes a GitHub Release automatically.

curl -fsSL https://github.com/animesao/cardinal-wings/releases/latest/download/install.sh | bash

The interactive terminal (websocket TTY) is still on the roadmap — it needs

streaming exec support in cardinal itself. Meanwhile exec/stream gives a

live output stream for commands.