Wharf is a private OCI registry. One Go process serves
the distribution API and the dashboard at /dashboard.
Run it with a SQLite file and blobs on disk. S3 is there when you set
it. make build embeds the React dashboard, so there is no second
process. A blob is stored once, under its digest. Repositories share a
layer by pointing at that digest.
- Push and pull: chunked uploads, cross-repository mounts, range requests, and referrers
- Dashboard for repositories, tags, manifests, layer history, retag, and delete
- Publish a repository so
docker pullworks without a login - Password login, personal access tokens, and service-account tokens
- Garbage collection from the dashboard or on a timer
git clone https://github.com/bravo68web/wharf.git
cd wharf--config is required. A starting file is in
Configuration.
export REGISTRY_SESSION_SECRET='replace-with-a-secret-of-32-bytes'
export REGISTRY_ADMIN_USER='admin'
export REGISTRY_ADMIN_PASSWORD='replace-with-a-long-password'
make build
./bin/wharf --config config.ymlThe dashboard is at http://localhost:5000/dashboard/. Sign in with
the bootstrap user. Set both admin variables, or neither. An existing
user is never rewritten.
docker build -t wharf .
docker compose -f deploy/docker-compose.yml up --buildThe compose stack is local development, with MinIO. Change its
environment values before the published port is reachable by anyone
else. WHARF_HOST_PORT moves the host port.
dev is the default branch. A preview tag on dev and a stable tag
on main publish the GitHub Release, bravo68web/wharf, and
ghcr.io/bravo68web/wharf. See Deploy.
| Guide | What it covers |
|---|---|
| Deploy | Binary, image, and the local compose stack |
| Configuration | The YAML file and the rules around it |
| Registry | docker login, push, pull, and publish |
| Accounts | Administrator, people, service accounts, tokens |
| Dashboard | Pages at /dashboard |
| Storage | Blobs, delete, and collection |
| API | /v2, /token, and /dashboard/api |
| Development | Tests, Vite, and the conformance scripts |
| Product | What this registry is for, and what it is not |
| Design | Dashboard visual system |
MIT. See LICENSE. Copyright (c) 2026 Jyotirmoy Bandyopadhayaya.