DevOps 04. Juni 2026 📖 9 Min Lesezeit
Gitea – Selfhosted Git-Server auf VPS installieren & betreiben 2026 | hostazar.com

Gitea – Selfhosted Git-Server auf VPS installieren & betreiben 2026

— Anzeige —

Google AdSense Platzhalter

Was ist Gitea? Der leichtgewichtige Git-Service aus der Community

Gitea ist ein selbst gehosteter Git-Service, der komplett in Go geschrieben wurde und als Open-Source-Projekt unter der MIT-Lizenz steht. Ursprünglich als Fork von Gogs gestartet, hat sich Gitea in den letzten Jahren zur ersten Adresse für Entwickler und Teams entwickelt, die einen eigenen Git-Server betreiben möchten – ohne auf den Komfort von GitHub oder GitLab verzichten zu müssen.

Das Besondere an Gitea ist seine Leichtgewichtigkeit: Während GitLab gerne 4–8 GB RAM allein für die Grundinstallation beansprucht, kommt Gitea mit wenigen hundert Megabyte Arbeitsspeicher aus. Die Binärdatei ist nur rund 100 MB groß und lässt sich auf jedem handelsüblichen VPS betreiben – selbst auf einer schmalen 2-GB-Kiste. Im Jahr 2026 ist Gitea auf Version 1.22+ und bringt Features mit, die es längst zu einer ernstzunehmenden Alternative zu den großen Plattformen machen.

Gitea bietet ein vollständiges Git-Erlebnis: Repository-Verwaltung, Issue-Tracker, Pull-Requests/Wiki, ein integriertes CI/CD-System und zahlreiche Integrationen über ein wachsendes Ecosystem an Plugins. All das ist in einer einzigen, schlanken Binary verpackt, die ohne schwere Abhängigkeiten auskommt.

Gitea vs. GitHub/GitLab vs. Gogs – Wo liegen die Unterschiede?

Die Entscheidung für den richtigen Git-Server hängt von mehreren Faktoren ab: Ressourcenverbrauch, Feature-Umfang, Komplexität des Setups und nicht zuletzt den Kosten.

GitHub ist der unangefochtene Marktführer unter den SaaS-Git-Plattformen. Actions, Discussions, CodeSpaces – das Ecosystem ist riesig. Doch wer sensible Daten hostet oder nicht für jedes Teammitglied eine Lizenz zahlen möchte, stößt schnell an Grenzen. GitHub Enterprise ist teuer, und die Selbstverwaltung der Infrastruktur entfällt komplett.

GitLab bietet die umfangreichste DevOps-Plattform aus einer Hand: von der Git-Verwaltung über die Container Registry bis hin zu integriertem Monitoring. Der Preis dafür ist ein deutlich höherer Ressourcenbedarf. Eine GitLab-Instanz mit allen Features benötigt schnell 8 GB RAM und mehrere CPUs – auf einem schlanken VPS ist das kaum zu stemmen.

Gogs war der ursprüngliche, extrem minimalistische Git-Server. Er wurde ebenfalls in Go geschrieben, ist aber in der Entwicklung hinter Gitea zurückgeblieben. Gitea hat Gogs in Sachen Features, Community und Update-Rhythmus längst überholt. Wer heute einen selbst gehosteten Git-Server aufsetzt, greift praktisch immer zu Gitea.

Die Tabelle zeigt die wesentlichen Unterschiede auf einen Blick:

  • Gitea: ~100 MB Binary, ~256 MB RAM Basis, voller Git-Service + CI/CD, MIT-Lizenz
  • GitLab: ~4 GB RAM Minimum, DevOps-Plattform mit 20+ Modulen, EE-Lizenz kostenpflichtig
  • Gogs: ~50 MB Binary, sehr basal, kaum noch aktive Community-Entwicklung
  • GitHub: SaaS, keine Selbstverwaltung, Kosten pro Nutzer, aber riesiges Ecosystem

Gitea auf dem VPS installieren – Docker oder Binary?

Für die Installation von Gitea auf Ihrem VPS gibt es im Wesentlichen zwei Wege: Docker (mit Docker Compose) oder die direkte Binary. Beide haben ihre Berechtigung, und die Wahl hängt von Ihrem Setup ab.

Installation per Docker Compose (empfohlen)

Docker ist die sauberste Methode, um Gitea auf einem VPS zu betreiben. Sie isolieren die Anwendung in einem Container, können Updates per docker compose pull && docker compose up -d durchführen und brauchen keine Abhängigkeiten auf dem Host-System zu installieren. Eine typische docker-compose.yml besteht aus Gitea selbst und einer PostgreSQL-Datenbank als separatem Service.

Ein wichtiger Tipp: Binden Sie die Datenverzeichnisse als Volumes ein, damit Ihre Repositories und Konfigurationen auch nach einem Container-Neustart erhalten bleiben. Gitea speichert alle Git-Daten standardmäßig unter /data/git im Container, daher sollten Sie dieses Verzeichnis auf einen Host-Pfad mappen.

Installation per Binary

Wer Docker vermeiden möchte oder einen besonders schlanken Stack bevorzugt, kann Gitea auch direkt als Binary installieren. Das Projekt liefert vorkompilierte Binaries für Linux (amd64, arm64) und viele weitere Plattformen. Der Vorteil: kein Docker-Daemon nötig, kein Image-Overhead. Der Nachteil: Sie müssen sich selbst um den Systemd-Service, Log-Rotation und Updates kümmern.

Reverse Proxy mit Nginx oder Traefik einrichten

Egal ob Docker oder Binary – Gitea sollte niemals direkt unverschlüsselt am Netz hängen. Setzen Sie einen Reverse Proxy davor. Nginx ist der Klassiker und bewährt: Eine einfache Konfiguration leitet HTTPS-Verkehr an den Gitea-Port (meist 3000) weiter. Traefik ist die moderne Alternative, die sich automatisch um Let's Encrypt SSL-Zertifikate kümmert und Docker-Services per Label automatisch erkennt. In beiden Fällen konfigurieren Sie ein SSL-Zertifikat – zum Beispiel mit Certbot oder der integrierten Let's Encrypt-Integration von Traefik – und leiten den gesamten Traffic auf Port 443 um.

Erste Schritte: Repository anlegen, SSH-Keys und Organisationen

Nach der Installation öffnen Sie Gitea im Browser und durchlaufen den Setup-Assistenten. Hier legen Sie den Admin-Benutzer fest, konfigurieren die Datenbankverbindung und stellen allgemeine Einstellungen wie den Server-Namen und die Registrierungs-Richtlinie ein.

Unmittelbar nach dem Login können Sie Ihr erstes Repository anlegen: Klicken Sie auf das Plus-Symbol, wählen Sie einen Namen (z. B. mein-projekt), entscheiden Sie zwischen öffentlich und privat und initialisieren Sie optional mit einer README-Datei oder einer .gitignore-Vorlage. Anschließend können Sie lokal mit git clone arbeiten oder bestehende Projekte per git remote add zu Gitea migrieren.

SSH-Keys sind essenziell für die sichere Authentifizierung. Jeder Benutzer hinterlegt seinen öffentlichen SSH-Key in den Profileinstellungen unter „SSH / GPG Keys". Danach funktioniert das Pushen und Klonen ohne Passwort – vorausgesetzt, der Gitea-Server ist über SSH erreichbar. Gitea bindet standardmäßig einen eigenen SSH-Server auf Port 22 oder einen alternativen Port ein – achten Sie darauf, dass dieser nicht mit dem systemweiten SSH-Daemon kollidiert.

Organisationen (Teams) helfen Ihnen, die Zusammenarbeit im Team zu strukturieren. Sie legen eine Organisation an, ordnen Benutzer als Mitglieder zu und definieren Teams mit spezifischen Berechtigungen (Lesen, Schreiben, Admin). Jedes Repository kann dann einer Organisation gehören, sodass die Verwaltung übersichtlich bleibt.

Features im Überblick: Issue-Tracker, Wiki, Pull-Requests und CI/CD

Gitea ist weit mehr als ein einfacher Git-Server. Die integrierten Features machen es zu einer vollwertigen Entwicklungsplattform:

Issue-Tracker: Verwalten Sie Aufgaben, Bugs und Feature-Wünsche mit Labels, Meilensteinen und Zuweisungen. Der Tracker unterstützt Markdown, Dateianhänge und automatische Schließung per Commit-Nachricht („Closes #42").

Wiki: Jedes Repository hat ein integriertes Wiki – perfekt für Dokumentation, API-Beschreibungen oder interne Wissensdatenbanken. Die Seiten werden ebenfalls in Git gespeichert und können lokal bearbeitet werden.

Pull-Requests: Der Code-Review-Workflow ist vollständig abgebildet: Branch-Vergleiche, Inline-Kommentare, Merge-Strategien (Merge Commit, Squash, Rebase) und Required Approvals schützen Ihren Haupt-Branch vor ungeprüften Änderungen.

CI/CD mit Woodpecker und Gitea Actions: Ab Version 1.19 bringt Gitea eine eigene Actions-Engine mit, die zu GitHub Actions kompatibel ist. Sie definieren Workflows in .gitea/workflows/*.yml, und Gitea führt die Jobs auf eigenen Runnern aus. Falls Sie bereits Woodpecker CI nutzen, lässt sich auch dieses nahtlos an Gitea anbinden. Die Kombination aus selbst gehostetem Git-Server und eigener CI/CD-Pipeline gibt Ihnen die volle Kontrolle über Ihre Build-Infrastruktur – ohne Abhängigkeit von externen Diensten.

Migration von GitHub oder GitLab zu Gitea

Gitea enthält einen integrierten Migrations-Assistenten, der den Umzug von anderen Plattformen stark vereinfacht. Sie erreichen ihn über „Explore → Migration" oder direkt über das Plus-Menü.

Für die GitHub-Migration reicht ein persönlicher Access Token mit Leseberechtigung für Ihre Repositories. Der Assistent überträgt nicht nur den Quellcode, sondern auch Issues, Pull-Requests, Labels, Meilensteine, Releases und Wiki-Seiten. Bei größeren Organisationen können Sie mehrere Repositories auf einmal migrieren – das spart enorm viel Zeit.

Für die GitLab-Migration benötigen Sie einen persönlichen Access Token von Ihrer GitLab-Instanz. Der Ablauf ist identisch. Gitea unterstützt auch Migrationen von Gogs, Bitbucket, OneDev und sogar von einfachen Git-Repositories ohne externe Plattform.

Tipp: Testen Sie die Migration zunächst mit einem einzelnen, nicht kritischen Repository, um den Ablauf kennenzulernen. Anschließend können Sie in großem Stil umziehen. Achten Sie darauf, dass die URL-Struktur Ihrer Repositories nach der Migration konsistent bleibt – Gitea unterstützt eigene Namespaces, sodass git.domain.de/team/projekt genauso funktioniert wie gewohnt.

Backup-Strategie für Gitea – Datenverlust vermeiden

Ein selbst gehosteter Git-Server enthält Ihr wertvollstes digitales Kapital: den Quellcode. Eine durchdachte Backup-Strategie ist daher nicht optional, sondern Pflicht.

Gitea speichert alle relevanten Daten in drei Bereichen:

  • Datenbank (PostgreSQL oder SQLite): Enthält Benutzerkonten, Issue-Kommentare, Konfiguration, Metadaten.
  • Git-Repositories: Liegen im Verzeichnis /data/git/repositories (Docker) oder /var/lib/gitea/data/gitea-repositories (Binary).
  • Konfigurationsdatei: app.ini mit allen Einstellungen der Instanz.

Das folgende Backup-Skript können Sie als Cron-Job einrichten:

#!/bin/bash
BACKUP_DIR="/backup/gitea"
DATE=$(date +%Y-%m-%d)
mkdir -p "$BACKUP_DIR/$DATE"

# Datenbank dump
docker exec gitea-db pg_dump -U gitea gitea > "$BACKUP_DIR/$DATE/gitea-db.sql"

# Git-Daten und app.ini (Docker Volume)
docker cp gitea:/data/. "$BACKUP_DIR/$DATE/gitea-data"

# Komprimieren und auf S3 o.ä. hochladen
tar czf "$BACKUP_DIR/gitea-$DATE.tar.gz" -C "$BACKUP_DIR" "$DATE"
rm -rf "$BACKUP_DIR/$DATE"

Bewahren Sie Backups an mindestens zwei getrennten Orten auf – zum Beispiel auf einem externen S3-Bucket und einer lokalen NAS. Testen Sie die Wiederherstellung regelmäßig, denn ein Backup ist nur so viel wert, wie seine erfolgreiche Restore-Fähigkeit.

Performance-Tuning für Gitea auf dem VPS

Gitea ist von Haus aus schlank, aber mit einigen Optimierungen holen Sie noch mehr aus Ihrem VPS heraus:

1. Datenbank von SQLite auf PostgreSQL umstellen. SQLite ist für kleine Installationen mit wenigen Benutzern ausreichend, doch sobald mehrere Entwickler parallel arbeiten, skaliert PostgreSQL deutlich besser. Die Umstellung ist unkompliziert: Sie exportieren die SQLite-Datenbank, importieren sie in eine frische PostgreSQL-Instanz und ändern den Datenbank-Typ in der app.ini.

2. Index-Einstellungen optimieren. In der app.ini steuert INDEXER_REPO_LIMIT (Standard: 50), wie viele Repositories gleichzeitig indexiert werden. Auf einem VPS mit 4 GB RAM können Sie diesen Wert auf 100 oder 150 erhöhen. Deaktivieren Sie den globalen Code-Search-Index, wenn Sie ihn nicht benötigen (DISABLE_INDEXER = true).

3. Git-Garbage-Collection automatisieren. Mit der Zeit sammeln sich lose Objekte in den Git-Repositories an. Ein regelmäßiger git gc --aggressive per Cron-Job hält die Repositories kompakt und beschleunigt Clone-Operationen. Gitea bietet dafür die integrierte Einstellung git.GC.Interval im Admin-Panel.

4. Caching aktivieren. Gitea unterstützt Redis als Cache-Backend für Sessions und Repository-Daten. Wenn Sie Redis auf Ihrem VPS betreiben (zum Beispiel als Docker-Container), reduziert das die Datenbanklast erheblich und beschleunigt Seitenaufrufe bei vielen gleichzeitigen Nutzern.

5. Reverse-Proxy-Caching. Ihr Nginx oder Traefik kann statische Assets (CSS, JS, Bilder) und Repository-Homepages cachen. Konfigurieren Sie entsprechende Cache-Control-Header und entlasten Sie so die Gitea-Instanz.

Empfohlenes Zubehör und Tools für den Betrieb

Für den Betrieb eines professionellen Git-Servers auf dem VPS empfehlen sich ein paar nützliche Tools und Ressourcen, die den Alltag erleichtern:

Fazit

Gitea ist im Jahr 2026 die unangefochtene Nummer eins unter den selbst gehosteten Git-Servern. Die Kombination aus minimalem Ressourcenverbrauch, umfassendem Feature-Set und aktiver Community macht es zur idealen Wahl für Entwicklerteams, Start-ups und Unternehmen, die die Kontrolle über ihren Quellcode behalten wollen.

Die Installation auf einem VPS ist mit Docker in wenigen Minuten erledigt, der integrierte Migrations-Assistent holt bestehende Projekte von GitHub oder GitLab ab, und die integrierte CI/CD mit Gitea Actions oder Woodpecker macht Sie unabhängig von externen Build-Diensten. Durch ein durchdachtes Backup-Konzept und gezieltes Performance-Tuning steht einem produktiven Betrieb nichts im Wege.

Wer heute in die eigene Git-Infrastruktur investiert, spart langfristig Kosten, schützt sensible Daten und schafft die Grundlage für eine professionelle DevOps-Pipeline. Gitea liefert dafür das Fundament – leichtgewichtig, offen und extrem leistungsfähig.

Empfohlenes Zubehör

Auf Amazon entdecken →

* Affiliate-Link. Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

— Anzeige —

Google AdSense Platzhalter (Ende)