Zum Inhalt

Gitea mit Docker selbst hosten

Veröffentlicht am 31. Juli 2026 · Geschätzte Lesezeit: 4 Minuten

Mit Gitea betreibst du einen eigenen Git-Server für Quellcode, Konfigurationsdateien und private Projekte. Die Weboberfläche verwaltet Benutzer und Repositorys, während Git die Versionsstände speichert. Für die Einrichtung mit Docker und SQLite solltest du etwa 20 bis 30 Minuten einplanen.

Diese Anleitung orientiert sich an der offiziellen Docker-Dokumentation von Gitea und wurde am 31. Juli 2026 geprüft.

Voraussetzungen

  • Ein Linux-Server mit installiertem Docker und Docker Compose
  • Ein Benutzerkonto mit Zugriff auf das Terminal
  • Eine feste IP-Adresse oder ein lokaler DNS-Name für den Server
  • Etwa 2 GB freier Speicherplatz für den Anfang

1. Arbeitsordner anlegen

Führe die folgenden Befehle im Terminal deines Servers aus. Sie erstellen einen eigenen Ordner für Gitea und wechseln direkt hinein.

mkdir -p ~/gitea/data
cd ~/gitea

Prüfe danach die Benutzer- und Gruppen-ID deines angemeldeten Linux-Benutzers:

id -u
id -g

Notiere beide Ausgaben. In vielen Installationen lauten sie jeweils 1000. Falls du andere Werte erhältst, trägst du diese im nächsten Schritt bei USER_UID und USER_GID ein.

2. Docker-Compose-Datei erstellen

Öffne im Ordner ~/gitea eine neue Datei:

nano compose.yaml

Füge die folgende Konfiguration ein. Ersetze <benutzer-id> und <gruppen-id> durch die Werte aus dem vorherigen Schritt.

services:
  gitea:
    image: docker.gitea.com/gitea:1.27.1
    container_name: gitea
    restart: unless-stopped
    environment:
      USER_UID: "<benutzer-id>"
      USER_GID: "<gruppen-id>"
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"

Speichere die Datei mit Strg+O, bestätige mit der Eingabetaste und beende Nano mit Strg+X.

Der Port 3000 öffnet die Weboberfläche. Port 222 stellt den SSH-Zugriff für Git bereit. Die Daten und die spätere Konfiguration bleiben dauerhaft im Ordner ~/gitea/data erhalten.

Warning

Leite die Ports 3000 und 222 nicht ungefiltert im Router ins Internet weiter. Nutze Gitea zunächst nur im Heimnetz oder über eine abgesicherte VPN-Verbindung.

3. Gitea starten

Starte den Container im Hintergrund:

docker compose up -d

Prüfe, ob der Container läuft:

docker compose ps

In der Spalte STATUS sollte Up stehen. Bei Problemen zeigt der folgende Befehl die letzten Protokollzeilen:

docker compose logs --tail=100 gitea

4. Ersteinrichtung abschließen

Öffne auf einem Computer im selben Netzwerk diese Adresse:

http://<server-ip>:3000

Ersetze <server-ip> durch die IP-Adresse deines Docker-Servers, zum Beispiel 192.168.178.50.

Wähle im Installationsassistenten diese Einstellungen:

  • Datenbanktyp: SQLite3
  • Server-Domain: die IP-Adresse oder der lokale DNS-Name deines Servers
  • Gitea-Basis-URL: http://<server-ip>:3000/
  • SSH-Server-Domain: die IP-Adresse oder der lokale DNS-Name deines Servers
  • SSH-Port: 222

Erstelle im Bereich für das Administratorkonto einen eigenen Benutzernamen und ein starkes, nur dort verwendetes Passwort. Schließe danach die Installation ab.

Danger

Trage echte Passwörter niemals in compose.yaml, Anleitungen oder Bildschirmfotos ein. Das Administratorkennwort wird ausschließlich im Installationsassistenten eingegeben.

5. Offene Registrierung ausschalten

Melde dich als Administrator an. Öffne in der Weboberfläche die Website-Administration und danach die Konfiguration. Deaktiviere die Benutzerregistrierung, wenn nur von dir angelegte Konten zugelassen werden sollen.

Prüfe anschließend in einem privaten Browserfenster, ob auf der Anmeldeseite keine freie Registrierung mehr angeboten wird.

6. Erstes Repository testen

Erstelle über das Pluszeichen ein neues Repository, zum Beispiel testprojekt. Aktiviere dabei die Option zum Erstellen einer README-Datei.

Falls Git auf deinem Computer installiert ist, kannst du den SSH-Zugriff nach dem Hinterlegen deines öffentlichen SSH-Schlüssels mit diesem Befehl testen:

git clone ssh://git@<server-ip>:222/<benutzername>/testprojekt.git

Ersetze <server-ip> durch die Server-Adresse und <benutzername> durch deinen Gitea-Benutzernamen. Der Befehl wird auf deinem Computer ausgeführt, nicht im Docker-Container.

7. Backup und Rückweg vorbereiten

Stoppe Gitea vor einer vollständigen Dateisicherung, damit sich während des Backups keine Daten ändern:

cd ~/gitea
docker compose down

Erstelle anschließend im übergeordneten Ordner ein komprimiertes Backup:

tar -czf "$HOME/gitea-backup-$(date +%F).tar.gz" -C "$HOME" gitea

Starte Gitea danach wieder:

docker compose up -d

Bewahre die Sicherungsdatei zusätzlich auf einem anderen Datenträger auf. Für die Wiederherstellung stoppst du den Container, ersetzt den Ordner ~/gitea durch den gesicherten Ordner und startest den Container erneut.

Tip

Sichere den Ordner vor jedem Update. Aktualisiere anschließend bewusst auf eine geprüfte Gitea-Version, statt unbemerkt zwischen Versionen zu wechseln.

8. Typische Fehler beheben

Wenn die Weboberfläche nicht erreichbar ist, kontrolliere zuerst Container und Ports:

docker compose ps

Prüfe danach, ob Port 3000 bereits von einem anderen Dienst verwendet wird:

sudo ss -ltnp | grep ':3000'

Falls der Port belegt ist, ändere in compose.yaml nur die linke Zahl, zum Beispiel auf "3001:3000". Rufe Gitea anschließend über http://<server-ip>:3001 auf.

Bei Schreibfehlern im Datenordner vergleichst du dessen Besitzer mit den eingetragenen IDs:

ls -ld ~/gitea/data

Fertig

Gitea läuft jetzt mit dauerhaft gespeicherten Daten auf deinem Docker-Server. Öffne die Weboberfläche, melde dich an und prüfe, ob sich das Test-Repository samt README anzeigen oder klonen lässt.