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.