wings · v0.4.48 · панели и кластер
cardinal-wings
Собственный REST-агент cardinal: ключи с ролями, live-стриминг, фасад над хостом и кластером. Ставится одним скриптом с GitHub Releases, работает systemd-сервисом.
~/ wings-github.sh
curl -fsSL https://github.com/animesao/cardinal-wings/releases/latest/download/install.sh -o /tmp/install-wings.sh
sudo bash /tmp/install-wings.sh
systemctl status cardinal-wings
curl -H "Authorization: Bearer <api_key>" http://localhost:8080/v1/containersАвторизация
Authorization: Bearer KEY · readonly / admin · GET /v1/self для гейтинга UI.
Streaming
logs?follow=1 · exec/stream · stats?stream=1 · /v1/events (SSE) · terminal/ws
▸ API v1
| Method | Path | Что делает |
|---|---|---|
| GET | /v1/ping · /healthz | liveness, readiness без авторизации |
| GET | /v1/version · /v1/self | версия wings, роль текущего ключа |
| GET | /v1/nodes · /v1/system/info · /v1/info | ноды, агрегат дашборда, сырой /info |
| GET | /v1/metrics · /v1/events | Prometheus (admin), события SSE |
| GET | /v1/sftp/info · /v1/bootstrap/ensure | статус SFTP, supervisor (admin) |
| GET/POST | /v1/containers · /v1/containers/{id} | list/create/inspect, lifecycle, remove |
| POST | /v1/containers/{id}/rename | переименование (admin) |
| GET | /v1/containers/{id}/top | процессы внутри (?ps_args) |
| POST | /v1/containers/{id}/wait | ждать остановки (admin) |
| GET | /v1/containers/{id}/changes | diff файловой системы |
| GET | /v1/containers/{id}/export | файловая система как tar |
| POST | /v1/containers/{id}/commit | образ из контейнера (admin) |
| GET/POST | /v1/containers/{id}/ports… | show/add/remove без рестарта |
| POST | /v1/containers/{id}/limits · /update | лимиты и скрипт запуска (admin) |
| GET/POST | /v1/containers/{id}/logs · /exec… | логи SSE, exec, exec/stream |
| GET | /v1/containers/{id}/stats (?stream=1) | метрики cgroup, live SSE |
| POST/GET | /v1/containers/{id}/terminal… | shell: open/input/stream/ws |
| GET | /v1/containers/{id}/fs/ls|cat|tree | файлы без шелла (?path) |
| GET/POST | /v1/containers/{id}/fm/… | list/read/download/write/mkdir/rm/move/chmod |
| POST | /v1/containers/{id}/cp | копирование host↔container (admin) |
| GET/POST | /v1/containers/{id}/backup | скачать/залить tar.gz (?clean) |
| GET/PUT/DEL | /v1/containers/{id}/sftp | креды SFTP контейнера |
| GET/POST/DEL | /v1/images… | list/inspect/pull/tag/push/rm/search |
| GET/POST | /v1/images/{ref}/history|get|verify | history, tar, offline-verify |
| GET/POST | /v1/system/df · /v1/system/prune | диск, чистка unused (admin) |
| GET | /v1/blueprints… | каталог, install/uninstall-таски |
| GET | /v1/tasks · /v1/tasks/{id} | async-задачи, опрос |
| GET/POST/DEL | /v1/services… | list/inspect/create/scale/update/rm |
| GET/POST/DEL | /v1/functions… | list/deploy/invoke/rm |
| GET/POST/DEL | /v1/cluster/* | health/info/replicas/nodes |
panel → wings :8080 (Bearer) → cardinal serve (loopback, local node)
→ cardinal serve :2375 (remote nodes)
GET /v1/containers?node=node-b · POST /v1/containers?node=node-a
GET /v1/system/info — агрегат всего кластера одним запросом