Frequently asked questions
Short answers. The setup guide has the details.
Is it really free?
Yes — Hoardr is open source under the MIT license. No seats, no usage limits, no paid tiers. Host as many instances as you like.
Where's the code?
On GitHub: https://github.com/BernhardPollerspoeck/Hoardr. Stars and contributions are very welcome.
Does docker push / pull really just work?
Yes. Hoardr implements the OCI Distribution Spec, so standard Docker and OCI clients talk to it unmodified — including multi-arch images (manifest lists).
How does authentication work?
A master token (set via environment variable) has full access and is used to bootstrap.
Everyone else is a DB account with per-repository permissions:
pull, push and delete are granted separately — so CI can push
without being able to delete.
How do old tags get cleaned up?
Tag retention is hybrid: it always keeps the N newest tags per repository, and of the rest deletes those older than a configurable age. Defaults are global and can be overridden per repository in the admin UI. Untagged manifests and unreferenced blobs are then reclaimed by garbage collection.
How does garbage collection reclaim space?
Two stages: unreferenced manifests are removed first (cascading through multi-arch indexes), then blobs with no remaining references are deleted from disk after a short grace period that protects freshly-uploaded layers.
Can it warn me before the disk fills up?
Yes. Hoardr watches the data drive and sends a push notification via ntfy when usage crosses your threshold (default 80%). Configure it in the admin UI.
Where is my data stored, and how do I back up?
Image blobs live on disk under your data directory; everything else (accounts, permissions, manifests, tags, settings) lives in the embedded database in the same directory. Back up that one directory and you've backed up the whole registry.
What does it run on?
A single .NET 10 process — no external database, cache or sidecars. Run the container anywhere, put HTTPS (e.g. a reverse proxy) in front, and you're done.
How can I contribute?
Open an issue or PR on GitHub. Bug reports, docs and feature ideas all help.