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/nodeswith 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.