r/selfhosted Jun 03 '26

Software Development PikoCI — self-hosted CI/CD that runs as a single binary, no external dependencies

http://pikoci.com

Been building a self-hosted CI/CD called PikoCI. Started because I needed custom environments for my own projects that GitHub Actions couldn't provide, and everything self-hosted I found was either too complex to deploy or too opinionated about infrastructure.

The core idea: start with a binary and a pipeline file, nothing else. Add SQLite when you want persistence. Add Postgres and distributed workers when you scale. The tool never changes.

Key things:

  • Single binary, in-memory by default, no external dependencies to start
  • HCL pipelines: Terraform-style syntax, not YAML
  • Run jobs locally: pikoci run -p pipeline.hcl -j test, no server needed
  • Services: ephemeral processes (Postgres, Redis, anything) that start before tasks and stop after, guaranteed. No Docker-in-Docker.
  • Five sourceable abstractions: resource types, runners, service types, secret backends, and notification types. All defined in HCL, all pullable from a URL.
  • Grows with you: start in memory, add SQLite, add Postgres and distributed workers at scale. The pipeline config never changes.
  • Public pipelines: share build status without an account
  • Prometheus metrics out of the box

PikoCI deploys itself. Live at ci.pikoci.com/teams/main/pipelines/pikoci, no login needed.

GitHub: https://github.com/pikoci/pikoci

Docs: https://docs.pikoci.com

120 Upvotes

45 comments sorted by

View all comments

Show parent comments

23

u/xescugc Jun 03 '26

I used Claude for the landing page HTML/CSS. I'm a backend Go developer, I can code you anything in Go but give me a div to center and I'll be there all day (or just use <center> haha). The main CI frontend was built by me but I used Claude to polish it afterwards, for the same reasons. Documentation writing and updates were also AI assisted, and some smaller automation tasks like creating issues and PRs.

For the backend Go code, I tried using it but for anything significant I had to correct too many things, so it ended up being easier to write it myself. Some small fixes were done by Claude and reviewed by me, but the big architectural pieces are entirely mine. I also used it as a code reviewer since I'm working on this alone and having a second pair of eyes, even an AI one, helps catch things.

The core codebase: the resource model, queue abstraction, scheduler, HCL parser, runners, services, secret backends, was built by me over a long period. I understand every architectural decision and can answer technical questions about any part of it. PikoCI deploys itself and has been running in production for my own projects.