Harbor vs. Gitea Container Registry: Die richtige Docker-Registry für dein Self-Hosted-Setup
Wer Docker-Images selbst hostet, braucht eine Container-Registry. Harbor (CNCF-Projekt) und die Gitea Container Registry sind zwei populäre Optionen im Self-Hosted-Bereich – mit sehr unterschiedlichen Zielgruppen.
Was ist Harbor?
Harbor ist ein Open-Source-Enterprise-Registry, 2016 von VMware entwickelt und seit 2020 CNCF-Graduated-Projekt. Es ist die erste Wahl, wenn eine vollständige, enterprise-ready Container-Registry gebraucht wird.
Stärken:
- Sicherheits-Scanning (Trivy, Clair) direkt integriert
- RBAC mit feingranularer Berechtigungsverwaltung
- Image-Signing (Notary/Cosign) für Supply-Chain-Sicherheit
- Quota-Management (Storage-Limits per Projekt)
- Garbage Collection und Tag-Retention-Policies
- Proxy-Cache für Docker Hub, GCR, etc.
- LDAP/OIDC-Integration
Schwächen:
- Komplex: läuft aus 8–10 Microservices
- Hoher Ressourcenbedarf (4+ GB RAM empfohlen)
- Aufwändige Initial-Konfiguration
- Für einfache Registry-Nutzung deutlicher Overhead
Was ist die Gitea Container Registry?
Gitea ist primär eine Git-Hosting-Plattform (GitHub-Alternative), bietet aber seit Version 1.17 eine integrierte Container Registry (OCI-kompatibel). Wer Gitea bereits nutzt, hat damit eine Registry inklusive.
Stärken:
- Kostenlos in Gitea integriert – kein zusätzlicher Service
- Selbe Nutzer und Tokens wie für Git-Repositories
- Sehr einfaches Setup (läuft in Gitea)
- OCI-kompatibel (funktioniert mit Docker, Podman, Helm Charts)
- Sehr leichtgewichtig
Schwächen:
- Kein Vulnerability-Scanning
- Kein Image-Signing
- Begrenzte Retention-Policies
- Kein Proxy-Cache für externe Registries
- Keine Enterprise-Features
Vergleich auf einen Blick
| Feature | Harbor | Gitea Container Registry |
|---|---|---|
| Vulnerability Scanning | Ja (Trivy/Clair) | Nein |
| Image Signing | Ja (Notary/Cosign) | Nein |
| RBAC | Umfangreich | Gitea-User-Permissions |
| Proxy Cache | Ja | Nein |
| Ressourcenbedarf | Hoch (8+ Services) | Minimal (Teil von Gitea) |
| Setup-Aufwand | Hoch | Sehr gering |
| Enterprise-Ready | Ja | Nein |
| Git-Integration | Nein (separates Tool) | Nativ (gleiche Plattform) |
Wann Harbor, wann Gitea?
Harbor ist die richtige Wahl wenn:
- Sicherheits-Scanning ein Muss ist (Compliance, Enterprise)
- Mehrere Teams mit unterschiedlichen Berechtigungen arbeiten
- Image-Signing für Supply-Chain-Sicherheit gebraucht wird
- Eine dedizierte, enterprise-grade Registry gebraucht wird
Gitea Container Registry ist die richtige Wahl wenn:
- Du Gitea bereits nutzt
- Einfaches Image-Hosting für eigene Projekte reicht
- Kein Sicherheits-Scanning oder Enterprise-Features gebraucht werden
- Ressourcen oder Aufwand begrenzt sind
Mein Setup: Gitea für Projekte, Harbor für Security-kritische Images
In meinem Self-Hosted-Stack läuft Gitea als Git-Server und ich nutze die integrierte Registry für meine eigenen Projekte. Das funktioniert hervorragend für den normalen Alltag.
# Docker-Login für Gitea-Registry
docker login gitea.typoniels.dev
docker tag mein-image:latest gitea.typoniels.dev/niels/mein-image:latest
docker push gitea.typoniels.dev/niels/mein-image:latest
Für Projekte, bei denen ich tatsächlich Vulnerability-Scanning brauche (z.B. wenn ich Images für andere veröffentliche), würde ich Harbor einsetzen. Für alles andere ist die Gitea-Registry einfacher und reicht vollkommen aus.
Die kurze Antwort: Wenn du Gitea bereits nutzt – nutze die integrierte Registry. Wenn du eine Enterprise-Registry mit Security-Features brauchst – Harbor.