Meet Boiler — minimal CI/CD in a single Go binary
We just pushed Boiler to Codeberg — a new open source project that goes in the opposite direction of every CI/CD tool you’ve used lately.
Boiler is a single Go binary. You point it at a YAML file, it runs the stages in sequence — locally or over SSH — and stores results in SQLite. That’s it. No daemon, no web server, no container runtime, no agent fleet, no YAML-that’s-actually-a-programming-language. One binary, one terminal, one pipeline after another.
Why
Existing CI/CD is overengineered. Most projects don’t need a build cluster, a plugin ecosystem, or a configuration DSL that doubles as a Turing-complete footgun. They need:
- Run these commands, in order
- If one fails, stop
- If SSH target, run them there
- Log what happened
- Show me the results
Boiler does exactly that.
What it looks like
Drop a pipeline.yaml in any project:
pipeline:
name: my-build
stages:
- name: build
run: make build
- name: test
run: make test
finally:
- name: cleanup
run: rm -rf tmp/
Then run it:
boiler run
A Bubble Tea TUI animates each stage in real time — pending → running → success/failed — with scrollable logs below. When it’s done, a dashboard shows run history, exit codes, and stage details.
SSH is a first-class target
Every stage (or the whole pipeline) can run remotely:
boiler run --ssh deploy@myserver.example.com
Individual stages can specify their own run_on target. Connections are reused across stages hitting the same host. ~/.ssh/config is resolved automatically.
Fun fact: yes, this could have been a shell script. We wrote it anyway because sometimes you want a TUI, SQLite persistence, and SSH multiplexing without piecing together a dozen tools with
curl \| bash. Also, Go binaries are fun to ship.
State of the project
Early beta. The core loop is solid — pipeline execution, TUI dashboard, SSH, SQLite persistence, log scrubbing for secrets — and we use it daily. The roadmap includes webhook triggers, cron schedules, and per-stage environment variables. Issues and PRs are welcome.
# Try it in 10 seconds
git clone https://codeberg.org/stackfactory/boiler.git
cd boiler
make install
boiler run example.yaml
Coded with the help of Deep Seek V4 Flash and opencode as part of educational and experimental purposes.