Architecture: server + agents communicating over UFP (UruFlow Protocol), a custom binary protocol built for real-time bidirectional streaming.
Why not HTTP: Traditional tools poll for updates. UruFlow pushes. When a deploy triggers, the agent receives the command instantly. Logs stream line-by-line as they execute — not on refresh, not batched, actual real-time.
UFP wire format: - Header: magic bytes (0x55 0x46) + version + type + payload length - Body: JSON - Message types: auth, metrics, commands, health checks - Persistent TCP connection with TLS support
The server runs a full TUI, The agent handles git operations, Docker builds, and streams output back through UFP.
Technical choices: - Go, single binary for server and agent - SQLite for state - Bubbletea for TUI
Supports Docker Compose, Dockerfile, Makefile builds. GitHub/GitLab webhooks for auto-deploy.
MIT licensed.
https://github.com/urustack/uruflow
Looking for feedback.