Personal
- TypeScript
- CI/CD
- SSH
- Docker
grove
CI runner fleet
One YAML file describes a fleet of self-hosted GitHub and GitLab runners. grove makes the hosts match it, watches the jobs, and restarts whatever wedges.
grove is agentless. One control node holds the config and reaches every host over SSH, or over a local transport when the host is the control node itself. Nothing lands on the hosts except the runners, which means a host needs no preparation beyond an SSH key.
It registers runners with GitHub and GitLab, keeps its own state in SQLite,
and runs either as a one-shot plan/apply or as a daemon that watches the
fleet.