stackfactory.dev
Let's talk

Blog

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.