Stacks / Backend
Harbor
A container registry you host. Harbor is Apache-2.0 (CNCF) — Docker Hub without the pull and seat meter.
The problem
Docker Hub Pro is $9/user/month billed yearly ($11 monthly); Team is $15/user/month billed yearly ($16 monthly). Personal is free until pull rate limits bite. You wanted images you can push, scan, and pull from CI. Harbor is the CNCF registry: projects, RBAC, and a replication policy. This is not Docker Desktop, Build Cloud, or Scout — those stay on a workstation or another tool.
Replaces
Docker Hub
Estimated SaaS saved
$1,800
per year, small team, before lock-in
Start on RailwayForgejo if the pain is the git host, not the image registry
Placeholder: Harbor + Postgres + Redis and a volume (or S3-compatible store) for blobs. No one-click template in this repo yet — Start on Railway. Git hosting can sit on /stacks/forgejo-git.
The stack
- Harbor
Apache-2.0 CNCF container registry
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| Docker Hub Pro / Team (small team) | $1,800 | Harbor + a volume |
Agent setup prompt
Replace Docker Hub with Harbor (https://goharbor.io). - Postgres + Redis + a volume (or S3) for blobs. Bind the registry and the UI. Create one project, one robot account, push one image. - Point CI at the new registry. Lock anonymous pulls if that is the policy. - Write AGENT_PROMPT.md. Do not claim Docker Desktop, Build Cloud, or Scout parity — this page is the registry.
Also as markdown: /stacks/harbor-registry.md
FAQ
- Is this Docker Desktop?
- No. Harbor stores and serves images. Docker Desktop, Build Cloud, and Scout are a different product. Forgejo Packages can hold a few images if you already run that forge — Harbor is the dedicated registry.
- Will my docker login keep working?
- Yes, against the new host. Recreate credentials. Rate limits you hit on hub.docker.com go away because you are pulling from yourself.