Gitea vs. GitHub vs. GitLab: Code-Hosting selbst betreiben oder in die Cloud geben?
Quellcode ist das wertvollste digitale Asset eines Unternehmens. Wo dieser Code liegt — und wer darauf Zugriff hat — ist eine strategische Entscheidung. GitHub dominiert den Markt (gehört zu Microsoft), GitLab bietet die umfangreichste Self-Hosting-Option, und Gitea ist der ressourcenschonende Newcomer mit überraschend vielen Features. Welche Plattform passt zu Ihrem Team?
In diesem Vergleich analysieren wir alle drei Plattformen aus der Perspektive einer Agentur, die ihre Code-Infrastruktur selbst kontrollieren möchte. Wenn Sie grundsätzlich über digitale Souveränität nachdenken, empfehlen wir unseren Artikel über digitale Souveränität durch Self-Hosting.
Die drei Kandidaten im Überblick
| Merkmal | Gitea | GitHub | GitLab CE |
|---|---|---|---|
| Lizenz | MIT (100 % Open Source) | Proprietär | MIT (CE) / proprietär (EE) |
| Self-Hosting | Ja | Enterprise Server (kostenpflichtig) | Ja (CE kostenlos) |
| Sprache | Go (Single Binary) | Ruby/Go | Ruby/Go |
| RAM idle | 50–150 MB | N/A (Cloud) | 2–4 GB Minimum |
| Empfohlener RAM | 512 MB – 1 GB | N/A | 8 GB+ |
| Aktuelle Version | 1.25 (März 2026) | Cloud (fortlaufend) | 17.x (2026) |
| Preis | Kostenlos | Free Tier + $4–21/User/Monat | CE kostenlos, EE ab $29/User/Monat |
Der auffälligste Unterschied: Gitea braucht 20–40x weniger RAM als GitLab CE. Ein Raspberry Pi kann Gitea betreiben — für GitLab brauchen Sie mindestens 4 GB adressierbaren Speicher.
Features im Detail
CI/CD
Gitea Actions (seit Version 1.19) sind nahezu vollständig kompatibel mit GitHub Actions. Das bedeutet: Sie können Ihre bestehenden .github/workflows-Dateien 1:1 in Gitea übernehmen. Der eigene Runner (act_runner) benötigt Docker auf dem Host.
GitLab CI/CD nutzt ein eigenes YAML-Format und gilt als das mächtigste CI/CD-System aller drei Plattformen. Integrierte Container Registry, SAST, DAST und Dependency Scanning sind in der CE-Version enthalten.
GitHub Actions ist der De-facto-Standard mit dem größten Marketplace an vorgefertigten Actions.
Package Registry
Alle drei bieten Package-Registries:
- Gitea: 20+ Formate (Docker/OCI, npm, Maven, PyPI, Composer, Helm, Debian, Go, Cargo, NuGet u. v. m.)
- GitHub Packages: Docker, npm, Maven, NuGet, RubyGems
- GitLab: Docker, npm, Maven, PyPI, Composer, NuGet, Conan und weitere
Issues, Pull Requests, Code Review
Alle drei Plattformen bieten vollwertige Issue-Tracker mit Labels, Milestones und Assignees. Pull Requests (Gitea/GitHub) bzw. Merge Requests (GitLab) mit Code-Review-Workflows sind Standard. GitLab bietet zusätzlich Boards und Epics für Projektmanagement.
GitHub-Mirroring: Das Beste aus zwei Welten
Ein Killer-Feature von Gitea: Bidirektionales GitHub-Mirroring. Sie können:
- Pull Mirror (GitHub → Gitea): Repos automatisch von GitHub nach Gitea synchronisieren — als Backup oder für interne CI/CD
- Push Mirror (Gitea → GitHub): Änderungen automatisch an GitHub pushen — für Open-Source-Projekte oder Zusammenarbeit mit externen Teams
So nutzen Sie Gitea intern als primäre Plattform, während öffentliche Repos auf GitHub gespiegelt werden. Die Einrichtung erfolgt über Repository-Einstellungen und benötigt einen GitHub Personal Access Token.
Docker-Setup: Gitea in 5 Minuten
services:
gitea:
image: docker.gitea.com/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=sqlite3
volumes:
- gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # Web-UI
- "2222:22" # SSH
restart: unless-stopped
volumes:
gitea-data:
SQLite als Datenbank reicht für kleine bis mittlere Teams. Für größere Instanzen (50+ User) empfiehlt sich PostgreSQL als externer Container.
Gitea Actions einrichten
Um CI/CD zu nutzen, starten Sie den act_runner als separaten Container:
services:
runner:
image: docker.gitea.com/act_runner:latest
environment:
- GITEA_INSTANCE_URL=http://gitea:3000
- GITEA_RUNNER_REGISTRATION_TOKEN=<token>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- gitea
Danach können Sie GitHub-Actions-kompatible Workflows in .gitea/workflows/ ablegen.
DSGVO: Warum Self-Hosted Code-Hosting relevant ist
GitHub speichert Daten in den USA (Microsoft Azure). Seit dem Schrems-II-Urteil ist die DSGVO-Konformität von US-Cloud-Diensten umstritten. Für Unternehmen mit strengen Datenschutzanforderungen — Behörden, Finanzdienstleister, Gesundheitswesen — ist Self-Hosting oft die einzige Option.
Gitea auf eigenem Server bedeutet:
- Quellcode verlässt nie die eigene Infrastruktur
- Volle Kontrolle über Backups, Zugriffsrechte und Löschung
- Kein Vendor-Lock-in — MIT-Lizenz, keine proprietären Abhängigkeiten
- Standortwahl: Deutscher Hoster, eigenes Rechenzentrum, oder Hybrid
Wann welche Plattform?
Gitea empfehlen wir wenn:
- Sie einen ressourcenschonenden Git-Server für 2–100 Entwickler brauchen
- GitHub-Actions-Kompatibilität wichtig ist
- Budget und Serverressourcen begrenzt sind
- DSGVO-Konformität zwingend ist
GitLab CE empfehlen wir wenn:
- Sie ein All-in-One-DevOps-Tool mit integriertem SAST/DAST brauchen
- Kubernetes-Integration ein Muss ist
- Sie mindestens 8 GB RAM für den Git-Server bereitstellen können
- Compliance-Features (Audit-Logs, Approval-Workflows) gefragt sind
GitHub empfehlen wir wenn:
- Open-Source-Sichtbarkeit entscheidend ist
- Das Team bereits GitHub Actions intensiv nutzt
- Keine Self-Hosting-Anforderung besteht
- Das größte Ökosystem an Integrationen benötigt wird
Managed Gitea: Self-Hosting ohne Ops-Aufwand
Gitea ist leichtgewichtig und wartungsarm — aber auch ein Git-Server braucht regelmäßige Updates, Backups und Monitoring. Bei netzspitze.tech betreiben wir Gitea als Teil Ihrer Managed-Infrastruktur:
- Gitea + act_runner als Docker-Stack
- Automatische Backups der Repositories und Datenbank
- SSL via Traefik mit automatischer Zertifikatserneuerung
- GitHub-Mirroring-Setup auf Wunsch
- Integration mit Ihren bestehenden Diensten (SSO, Monitoring)
Jetzt Beratungstermin buchen — wir helfen Ihnen, die richtige Code-Hosting-Lösung zu finden.