{"repo":"Mic92/kiss-cache","free":true,"listed":false,"github":"https://github.com/Mic92/kiss-cache","clone":"git clone https://github.com/Mic92/kiss-cache.git","description":"Self-hosted Nix binary cache: nginx + mTLS + GC-root-based pruning. No database, no daemon.","language":"Nix","stars":12,"topics":["binary-cache","mtls","nginx","nix"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"kiss-cache A self-hosted Nix binary cache: nginx serves a flat directory of .narinfo and nar/ files behind mutual TLS, builders push with nix copy --to https://... , and a systemd timer prunes everything not reachable from a GC root. No database, no daemon, no cache server process to keep alive. Quick start Server: Builder: Full walkthrough → — generating certs and signing keys, the flake skeleton, pushing, configuring readers. Why cache-shootout found this layout to be the fastest of the binary cache options it benchmarked. It is also the simplest: a Nix binary cache is an immutable, content-addressed key-value store, which is exactly what a static file server is good at. kiss-cache supplies the two things nginx alone is missing: pruning and per-client write access. The pruner reads marker files under one or more gcroots/ directories; each line naming a /nix/store/... path is a GC root. It walks the transitive closure through References: in the .narinfo files and deletes everything not reachable from a root. Roots are registered by writers: CI pushes a closure and PUT s a marker. Like nix-collect-garbage but for a binary cache. A fork of Astro's nix-cache-cut, which introduced the GC-root-based approach. Adds a persistent metadata cache, parallel scanning, NixOS modules for serving over mTLS, and HTTP-pushable GC roots. Documentation Getting started - Quick start — generate certs, deploy, push, read. - NixOS option reference — every module and option, including signing and i","default_branch":null,"files":null,"tree":[],"storefront":"/r/Mic92","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Mic92/kiss-cache/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}