CI/CD server
2025–now
Open sourceEZPIPELINE
Self-hosted CI/CD with live logs, approvals and rollbacks.
Overview
A self-hosted CI/CD server. Pipelines are YAML files of shell steps that run on your own machine, with their output streamed live to a React dashboard. It ships FileFreak, notch.fm, knitted.studio, 4 Seasons and this site.
My role
Creator. Server, dashboard, permissions model and the pipelines that run on it.
Built with
- TypeScript
- Node.js
- Express 5
- SQLite
- Socket.IO
- React 19
- Vite
- Tailwind CSS 4
- xterm.js
- Docker
In numbers
- products it ships, this site included
- 5
- permission flags per pipeline
- 7
- licensed
- Apache-2.0
How it's built.
Live, without polling
One Node process owns the database, the pipeline files and the child processes. Progress streams over Server-Sent Events, with each step's bar estimated from that pipeline's own history.
Approvals and rollbacks
Approval gates where a newer push replaces a build still waiting, and rollbacks that re-run a pipeline's deploy steps from an archived build.
Permissions that mean something
Seven flags per pipeline, so “can deploy” and “can rewrite the deploy script” are different rights. Optional email MFA, and secrets redacted from logs by name.
Git watches and deploy keys
A run starts when a watched branch moves. SSH deploy keys are generated per group on the server, encrypted at rest and inherited by the groups below.
An assistant with guardrails
An in-app AI assistant with 11 scoped tools and no shell or filesystem access, and an MCP server with 16 tools, rollback planning among them.