Kurz gesagt: GitLab ist eine komplette DevOps-Plattform mit CI/CD, Issue-Tracking und Registry, braucht dafür aber viel Leistung: Für eine Installation auf einem Server nennt GitLab 8 vCPU und 16 GB RAM als Grundlage (mindestens 8 GB in Umgebungen mit wenig Speicher). Gitea ist schlank, schnell eingerichtet und läuft schon auf kleinen Servern. Für kleine Teams, die vor allem Git-Repositories, Pull Requests und Issues brauchen, reicht Gitea; wer integrierte Pipelines und Enterprise-Funktionen will, nimmt GitLab.
Warum einen eigenen Git-Server?
- Quellcode bleibt auf einem Server Ihrer Wahl, zum Beispiel in Deutschland
- keine Abhängigkeit von Preisen und Limits externer Plattformen
- Anbindung an interne Systeme, die nicht öffentlich erreichbar sein sollen
Dafür übernehmen Sie Betrieb, Updates und Backups, oder Sie lassen den Server betreuen.
GitLab und Gitea im Vergleich
| GitLab (Self-Managed) | Gitea | |
|---|---|---|
| Umfang | komplette DevOps-Plattform: Repos, CI/CD, Registry, Issues, Wikis, Sicherheitsscans (je nach Edition) | Repos, Pull Requests, Issues, Wiki, Pakete; CI über Gitea Actions |
| Ressourcen (laut Hersteller) | Basis für einen Server: 8 vCPU, 16 GB RAM; mindestens 8 GB RAM in speicherarmen Umgebungen; ca. 40 GB Speicher für Installation, Betriebssystem und Logs, plus Ihre Daten | gering; läuft schon auf kleinen Servern |
| Installation | Linux-Paket oder Docker | einzelne Binärdatei oder Docker |
| Gut für | größere Teams, integrierte Pipelines, Compliance-Anforderungen | kleine Teams, Agenturen, schlanker Betrieb |
Quellen: GitLab installation requirements, Gitea: Installation with Docker.
GitLab weist außerdem darauf hin, Swap möglichst zu deaktivieren oder so viel Arbeitsspeicher einzuplanen, dass GitLab ihn nie braucht, weil Swap die Leistung unter Last stark verschlechtert.
Gitea mit Docker Compose installieren
Gitea stellt eine fertige Compose-Datei bereit. Im Kern:
services:
server:
image: docker.gitea.com/gitea:<aktuelle-version>
restart: always
volumes:
- ./gitea:/data
ports:
- "127.0.0.1:3000:3000"
- "222:22"
Port 3000 ist die Weboberfläche (hier nur lokal, für den Reverse Proxy), Port 222 der SSH-Zugang für Git. Die aktuelle Versionsnummer und Varianten mit MySQL oder PostgreSQL finden Sie in der Gitea-Dokumentation. Danach docker compose up -d, Weboberfläche über den Reverse Proxy mit HTTPS aufrufen und die Ersteinrichtung abschließen. Grundlagen: Docker Hosting.
GitLab installieren
GitLab bietet ein Linux-Paket für gängige Distributionen und ein Docker-Image. Planen Sie die Ressourcen nach den offiziellen Anforderungen und richten Sie die externe URL, E-Mail-Versand und HTTPS gleich bei der Installation ein. Für CI/CD brauchen Sie zusätzlich GitLab Runner, idealerweise auf einem eigenen Server, damit Builds den GitLab-Server nicht ausbremsen.
Backups
- Gitea: Datenverzeichnis und Datenbank sichern; Gitea bringt dafür einen
dump-Befehl mit. - GitLab: das eingebaute Backup-Werkzeug nutzen und die Konfigurations- und Secrets-Dateien separat sichern; ohne sie lassen sich verschlüsselte Daten nicht wiederherstellen.
- Backups außerhalb des Servers aufbewahren und die Wiederherstellung testen.
Welcher Server?
| Setup | Empfehlung |
|---|---|
| Gitea für ein kleines Team | kleiner VPS |
| Gitea + CI-Runner | VPS mit 4 vCPU, 8 GB RAM |
| GitLab, ein Server | nach GitLab-Basis: 8 vCPU, 16 GB RAM |
| GitLab + Runner | GitLab-Server plus separater Runner-Server |
Bei GB Hosting entspricht das dem Cloud Starter für Gitea und dem Cloud Pro (8 vCPU, 16 GB RAM) für GitLab, jeweils mit Root-Zugriff, täglichen Snapshots und Betreuung des Betriebssystems. Managed VPS ansehen
Häufige Fragen
Ist GitLab Self-Managed kostenlos?
Es gibt eine kostenlose Edition; erweiterte Funktionen sind kostenpflichtig. Prüfen Sie die aktuellen Editionen bei GitLab.
Reicht ein Server mit 4 GB RAM für GitLab?
Nach den offiziellen Angaben nicht: GitLab nennt mindestens 8 GB RAM für speicherarme Umgebungen und 16 GB als Basis.
Kann ich von GitHub zu Gitea oder GitLab umziehen?
Ja. Beide bieten Importfunktionen für Repositories, Issues und weitere Daten.