Community Edition as a Compose stack, and programs on TinyGo
v0.2.5
•Platform
Features
Community Edition: ControlBird now runs as a Docker Compose stack, one container per service. Install it with `curl -fsSLO https://controlbird.io/compose.yaml && docker compose up -d`, and read each service's output with `docker compose logs `.
Extensions: extensions install from signed container images, and each extension service runs in its own container. Cloud nodes keep their installed extensions on the catalog's latest version.
Programs: programs are compiled with TinyGo and written as event handlers that react to changes, timers and requests. Compilation refuses conversions that could silently lose part of a number, and a leader program that crashes restarts on its own with a growing delay.
Rule chains: rule chains run on the same event handlers as programs.
Logs: service, communication and program logs are kept separately for each node, and the Logs app shows only the logs of the node you are signed in to.
Backups: configuration backups are downloaded and uploaded through the Config Manager as files, and only roles allowed to make backups can export, import or download them. A downloaded export is removed from the node ten minutes after it is made.
SMTP: a mail attachment is stored on the node with its file name, so the attachment arrives under the name you set.
VPN: with the VPN in its own container, BACnet and CoAP devices are reachable through it, and the node's UI and peers are reachable over the tailnet.
Bug Fixes
UI: after a lost connection, every value on screen shows its current state as soon as the connection is back, instead of waiting for its next change.
Discovery: discovery adapters can connect over IPv4 on hosts that also have IPv6.
Google Home: Google Home requests are answered by the node that owns the device on every cloud node.
Performance
Cloud: cloud nodes share one set of services instead of each running its own, which cuts the memory each node needs.
Programs: compiled system programs are cached between builds, and the compiler returns its memory after each build.
⚠️ Breaking Changes
The single `controlbird/ce` image and the `.deb` and `.rpm` packages are discontinued. Install the Community Edition with the Compose stack instead; an existing single-image install needs a fresh install.
Programs must be written as event handlers. Programs that start goroutines, block on channels or use `select` no longer compile.
The ControlBird MCP tool reaches a node over HTTP with an API key; it no longer reads a node's logs, history or files directly.