Repository navigation
Releases: ufna/birdman
Releases · ufna/birdman
Release list
v0.7.0
First public release. Everything before it was internal iterations on our own
fleet — accepted in production there, but never tagged or published.
The platform, as shipped:
- Matchmaking and allocation — region- and RTT-aware tickets, millisecond
allocation from a warm pool of ready dedicated servers. - Soft multi-version deploys — image pre-pull, atomic fleet flip, instant
rollback; the previous version drains and keeps serving its live matches. - Environments — versions, fleets, nodes and the active version are scoped
per(project, env);auto_deploydev streams, guarded prod, one-call
promote dev → prod. - Multi-tenancy — projects with API keys bound to a
(project, env)pair;
the binding narrows reads too, including the log/metrics proxies. - Node agent — dedicated servers as containerd containers, port pools,
self-upgrade viaPOST /v1/agent-upgrade, enrollment over strict mTLS
(Enroll-by-token against the built-in CA). - Observability — Prometheus metrics, an SSE event feed, per-server logs
with history, alert rules surfaced in the panel; VictoriaMetrics/VictoriaLogs
proxies with tenant narrowing. - Backups — scheduled
pg_dumpwith local retention and an optional S3
offsite; a stale backup raises an alert. - Admin panel — bilingual (EN/RU), light/dark, embedded in the master
binary; a demo mode for a look without a fleet. - Contracts — OpenAPI 3.1 generated from the route table and served at
GET /v1/openapi.yaml; the master is an MCP server atPOST /v1/mcp. - Self-host — the
deploy/compose stack for the master,
infra/add-node.shfor nodes; seedocs/self-host.md.
Release assets (linux/amd64): birdman-master, mmcli, birdman-agent,
SHA256SUMS. The agent binary is stamped 0.7.0 — pass exactly that string
as version to POST /v1/agent-upgrade, with the asset URL and its sha256
from SHA256SUMS.
Known rough edges, honestly:
- The OpenAPI contract does not describe query parameters and request bodies
yet — paths, methods, scopes and response shapes only. add-node.shwires metric/log shippers on the node unconditionally; on a
baredeploy/master without VictoriaMetrics/VictoriaLogs they buffer into
the void (birdman_node_vmagent: falsein the host block turns them off).