← ZurĂŒck zur Übersicht Gitea mit Docker Compose: Eigene Git-Plattform lokal auf Port 3000 starten

Gitea mit Docker Compose: Eigene Git-Plattform lokal auf Port 3000 starten

Gitea mit Docker Compose: Eigene Git-Plattform lokal auf Port 3000 starten

Wenn Code, Issues und kleine interne Repositories nicht direkt in einer grossen SaaS-Plattform landen sollen, ist Gitea einer der sinnvollsten Self-Hosting-Kandidaten. Das Projekt bleibt leicht genug fuer einen kleinen Homeserver oder Dev-Host, liefert aber sofort ein sichtbares Ergebnis: Repos, Nutzer, Web-UI und optional Git ueber SSH im Browser und auf der Shell.

Fuer diesen Artikel ist die Grundlage sauber genug. Die offizielle Gitea-Doku beschreibt am 17. April 2026 weiterhin ein Compose-Setup mit SQLite3 fuer den einfachen Start, nennt Port 3000 fuer die Weboberflaeche, Port 22 im Container fuer SSH und zeigt als konkrete stabile Variante docker.gitea.com/gitea:1.25.5. Genau diese Version pinne ich hier bewusst, damit das Tutorial reproduzierbar bleibt und nicht spaeter von latest abhaengt.

Lokal erzeugtes Artikelbild fuer Gitea mit Docker Compose

Was du am Ende hast

  • Gitea lokal unter http://127.0.0.1:3000
  • Git ueber SSH lokal auf ssh://[email protected]:222/...
  • Eine kleine Compose-Umgebung mit nur einem Dienst und SQLite
  • Persistente Daten in einem lokalen Projektordner statt nur in einem fluechtigen Container

Warum dieses Setup gerade stark genug ist

Nicht jeder Docker-Fallback taugt als Artikel. Hier passt der Nutzwert aber sofort:

  • Gitea loest ein reales Problem fuer kleine Teams, Sideprojects und private Repos
  • die offizielle Doku zeigt weiterhin einen klaren Compose-Weg statt nur lose Snippets
  • 1.25.5 ist als stabile Release in der offiziellen Installationsseite ausdruecklich genannt
  • das Ergebnis ist direkt sichtbar: Login, erstes Repo, Clone-URL und Weboberflaeche

Voraussetzungen

  • Docker Engine und docker compose sind installiert
  • Port 3000 fuer HTTP ist frei
  • Port 222 ist frei, wenn du Git lokal auch per SSH nutzen willst

Pruefe Docker vorab kurz:

docker --version
docker compose version

1. Eigenen Arbeitsordner anlegen

Nicht in einem beliebigen alten Compose-Verzeichnis anfangen. Lege dir zuerst einen dedizierten Ordner an:

mkdir gitea-local
cd gitea-local
mkdir gitea

Der Unterordner gitea wird spaeter nach /data in den Container gemountet und enthaelt Konfiguration, Repositories und SQLite-Daten.

2. UID und GID fuer dein System pruefen

Die offizielle Doku verwendet im Beispiel 1000:1000. Das passt oft, aber nicht immer. Pruefe deshalb zuerst deine echte lokale ID:

id -u
id -g

Wenn beide Werte bei dir 1000 sind, kannst du das Beispiel unten direkt uebernehmen. Falls nicht, trage deine eigenen Werte ein.

3. Compose-Datei anlegen

Lege jetzt die Datei gitea-local/docker-compose.yaml an:

services:
  gitea:
    image: docker.gitea.com/gitea:1.25.5
    container_name: gitea
    restart: unless-stopped
    environment:
      USER_UID: 1000
      USER_GID: 1000
    ports:
      - "127.0.0.1:3000:3000"
      - "127.0.0.1:222:22"
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

Wenn id -u oder id -g bei dir nicht 1000 ergeben haben, ersetze die beiden Werte direkt hier.

Warum genau dieses Setup?

  • docker.gitea.com/gitea:1.25.5 folgt der aktuell dokumentierten stabilen Release
  • 127.0.0.1:3000:3000 haelt die Weboberflaeche zuerst lokal statt sie direkt im ganzen Netz freizugeben
  • 127.0.0.1:222:22 gibt dir SSH fuer lokale Tests, ohne den Standard-SSH-Port des Hosts zu blockieren
  • ./gitea:/data macht die Ablage fuer Repos und Konfiguration nachvollziehbar und persistent

4. Stack starten

Jetzt ziehst du das Image und startest Gitea:

docker compose pull
docker compose up -d

Danach sollte die lokale Weboberflaeche unter dieser Adresse antworten:

http://127.0.0.1:3000

5. Technisch pruefen, bevor du im Browser klickst

Pruefe zuerst den Containerzustand:

docker compose ps

Danach pruefst du die HTTP-Antwort:

curl -I http://127.0.0.1:3000

Wenn die App noch hochfaehrt, sind die Logs der schnellste Weg zur Ursache:

docker compose logs --tail=100 gitea

Ein 200 OK oder ein sauberer Redirect ist hier das richtige Signal.

6. Ersten Start im Browser abschliessen

Oeffne jetzt http://127.0.0.1:3000 im Browser. Beim ersten Aufruf landest du im Installationsdialog.

Fuer dieses lokale Ein-Container-Setup ist der einfache Weg genau der richtige:

  • Datenbank: SQLite3
  • Pfade und Standardwerte im Gitea-Dialog nicht unnoetig verkomplizieren
  • SSH-Server-Port in der Oberflaeche auf 222 setzen, wenn du die angezeigten Clone-Hinweise exakt an dein lokales Port-Mapping anpassen willst

Sobald der erste Admin-Nutzer angelegt ist, ist das sichtbare Ergebnis da:

  • du kannst ein erstes Repository erstellen
  • Issues und Pull Requests stehen sofort bereit
  • Git-Clone-URLs sind direkt in der Oberflaeche sichtbar
  • du hast eine eigene kleine Forge statt nur einen gestarteten Container

Genau an diesem Punkt taugt das Projekt als Tutorial. Der Mehrwert ist nicht abstrakt, sondern direkt benutzbar.

7. Git ueber SSH lokal testen

Wenn du auch den SSH-Pfad pruefen willst, kannst du nach dem ersten Login ein Test-Repository anlegen und die SSH-Erreichbarkeit lokal gegen Port 222 pruefen:

ssh -p 222 [email protected]

Je nach Gitea-Status und eingerichtetem Schluessel bekommst du noch keinen erfolgreichen Login, aber du solltest zumindest sehen, dass der SSH-Dienst auf dem gemappten Port antwortet statt ins Leere zu laufen.

Sinnvolle Alltagsbefehle

Fuer den Alltag brauchst du am Anfang nur diese Kommandos:

docker compose logs -f gitea
docker compose pull
docker compose up -d
docker compose down

Deine Daten bleiben dabei im lokalen Ordner ./gitea erhalten.

Wichtige Hinweise fuer den echten Einsatz

Das hier ist absichtlich ein lokaler, sicherer Start und kein sofort internetoffenes Produktivsetup. Fuer den echten Dauerbetrieb solltest du direkt mitdenken:

  • 127.0.0.1 nur dann auf echte Netz-IP oder 0.0.0.0 aendern, wenn du den Zugriff bewusst oeffnen willst
  • vor einem Reverse Proxy spaeter die ROOT_URL sauber auf die echte Zieladresse setzen
  • SSH-Schluessel und Admin-Zugang direkt nach dem ersten Start ordentlich einrichten

Fazit

Wenn aktuelle News im Moment nicht sauber genug oder zu nah an bereits behandelten Themen liegen, muss der Ersatz klar besser sein als der naechste generische Stack. Gitea schafft das heute. Die offizielle Doku liefert am 17. April 2026 weiterhin einen einfachen Compose-Weg mit SQLite, die stabile Version 1.25.5 ist klar benannt, und das sichtbare Ergebnis steht nach wenigen Minuten im Browser.

Fuer kleine Teams, private Repos oder ein lokales Dev-Setup ist das ein deutlich staerkerer Fallback als irgendein austauschbarer Container ohne klares Endprodukt.

Quellen