Snart
Dit registry. Dine images. Ejet.
pks-agent-registry
Et container-registry på én binær, som dine agenter selv starter pr. projekt — en lokal, fuldt ejet erstatning for Azure Container Registry, der kører overalt og tages backup af med `tar`.

Hvert image, dine agenter bygger, ligger et sted, du ikke kontrollerer.
Kodende agenter bygger containere hele dagen — til previews, til tests, til release. Men det registry, de pusher til, er næsten altid lejet: en cloud-konto med sit eget login, sin egen pris pr. gigabyte og pr. pull, sit eget nedetidsvindue. Når agent-loopet afhænger af et registry, du ikke kan genstarte, tage backup af eller gennemskue, har du overladt fundamentet for din pipeline til andre. Vi valgte at eje det fundament.
Cloud-registries fakturerer pr. lagret gigabyte og pr. pullet image — omkostninger der vokser med præcis det, agenter gør mest: bygger og puller.
Den "nemme" vej er det fulde `distribution/distribution`-reference-image og et managed control plane — overkill til et registry pr. projekt, og en stak du ikke ejer.
Når registry'et er en black box, kan du ikke `tar`'e en backup, ikke genstarte det på sekunder og ikke læse dine egne data på disken.
Én container, én kommando, ét volume.
Kør én container.
`docker run` det ene image med ét volume til lagring og ét admin-token. Det er hele installationen — ingen database, ingen ekstra services.
Tilføj en owner.
`agent-registry owner add <dig>` — én kommando opretter dit namespace og login. Repos og tags dukker op automatisk, første gang du pusher; intet skal oprettes på forhånd.
Push som du plejer.
`docker login`, `docker push`. Det taler den standardiserede OCI v2-protokol, så `docker`, `podman`, `skopeo` og `crane` virker alle uændret.
Tag backup med `tar`.
Alt er almindelige filer under én mappe — blobs, manifests, tags, owners. Kopiér mappen, så har du en backup. Flyt mappen, så har du migreret.

Én binær, ét volume
Hele registry'et er én Go-binær og én mappe på disken; ingen database, ingen sidecar-services at holde i live.

Standard-OCI, ingen overraskelser
Taler Docker Registry V2 / OCI Distribution Spec, så `docker`, `podman`, `skopeo` og `crane` pusher og puller uændret.

Owner + repo-tenancy
Hver owner får et namespace og sit eget login; repos og tags opstår ved første push uden at skulle oprettes på forhånd.

Lagring i almindelige filer
Blobs, manifests og tags er content-adresserede filer under `USER_DATA_DIR` — `tar`-venlig backup, ingen indbygget database.

Admin indbygget i binæren
Samme binær er admin-CLI'en: tilføj owners, list repos, slet tags og kør GC lokalt via `docker exec` eller eksternt over management-API'et.

Auth du kan gennemskue
HTTP Basic pr. owner til push/pull, ét Bearer-token til management — afslut TLS på din egen reverse proxy.
Bygget fra fundamentet, ikke fra reference-imaget. I stedet for at køre den tunge `distribution/distribution`-stak er dette en minimal Go-binær skrevet til præcis det, et registry pr. projekt har brug for — hver beslutning truffet bevidst.
Ingen afhængighed vi ikke ejer. Lagringen er almindelige filer, hvis layout vi selv har skrevet; auth er Basic og Bearer, vi selv implementerer. Der er ingen indbygget database og intet managed control plane at afhænge af.
Kører overalt. Det er én container, der kører ens på en Hetzner-host, et Coolify-homelab, et CI-job eller din laptop — kun HTTP, med TLS afsluttet på den proxy, du allerede kører.
Komponérbar af design. Det er et runtime-lag, der ligger stille, mens resten af suiten bevæger sig omkring det: agenter pusher hertil, delivery puller herfra, og intet tvinger dig til at køre mere end selve registry'et.
Bygger sammen med
Stop med at leje det registry, dine agenter er afhængige af.
pks-agent-registry er én Go-binær, der taler den standardiserede OCI-protokol. `docker push` virker uændret. Lagringen er almindelige filer på din disk. Ingen cloud-konto, ingen regning pr. pull, ingen database at passe på.