Gittea (aka Gitea): Dein eigener Git-Server in leicht

Allgemein

Gittea (aka Gitea): Dein eigener Git-Server in leicht

Gittea – korrekt heißt das Projekt Gitea – ist eine schlanke, selbst gehostete GitHub-Alternative. Du bekommst einen schnellen, einfach zu betreibenden Git-Server mit Weboberfläche, Pull Requests, Issues, Wiki und mehr. Perfekt für Teams, Agenturen, Solo-Entwickler oder Bildungseinrichtungen, die Kontrolle über ihren Code behalten möchten.

Warum Gittea?

  • Schnell und ressourcenschonend: Läuft gut auf kleinen Servern oder NAS.
  • Einfache Einrichtung: In Minuten startklar, besonders mit Docker.
  • Datenhoheit: Dein Code bleibt auf deiner Infrastruktur.
  • Voll ausgestattet: Repositories, Pull Requests, Issues, Releases, Wiki.
  • Flexibel: SSH/HTTPS, Webhooks, API, Integrationen für CI/CD.

Mehr Infos: https://gitea.io

Features im Überblick

  • Repositories mit Git über HTTPS und SSH
  • Pull Requests mit Code-Review, Branch-Regeln und Schutz
  • Issue-Tracker, Labels, Milestones, Projekte (Kanban)
  • Wiki und Releases pro Repository
  • Benutzer, Teams, Organisationen und Rechteverwaltung
  • Webhooks und REST-API für Integrationen
  • Paket-Registry (optional) und Container Registry
  • CI/CD-Optionen: Gitea Actions oder externe Tools (z. B. Drone, Jenkins)
  • Single Sign-On/LDAP/OAuth (optional)
  • Backups per Datendump oder Dateisicherung

Dokumentation: https://docs.gitea.com/

Gittea installieren (Docker-Variante)

Am einfachsten startest du Gittea mit Docker und Docker Compose.

1) Ordner anlegen:

mkdir -p ~/gitea && cd ~/gitea

2) Datei docker-compose.yml erstellen:

services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - ./gitea:/data
    ports:
      - "3000:3000"  # Web
      - "2222:22"    # SSH
    restart: always

3) Starten:

docker compose up -d

4) Aufrufen: http://localhost:3000

Beim ersten Start führt dich ein Assistent durch die Einrichtung. Für Einsteiger reicht SQLite als Datenbank völlig aus. Lege einen Admin-Account an und schon bist du drin.

Reverse Proxy und HTTPS

Für Produktion solltest du HTTPS nutzen. Typische Varianten:

  • Traefik oder Caddy mit automatischem Let’s Encrypt
  • Nginx/Apache als Proxy vor Gitea

Beispiel (Traefik, stark vereinfacht): Domain auf den Server zeigen, Traefik als Proxy betreiben, Gitea per Labels veröffentlichen. Anleitung: https://docs.gitea.com/installation/install-with-docker#reverse-proxy-configuration

Repository anlegen und verbinden

1) In Gitea ein neues Repository erstellen.
2) Lokal dein Projekt initialisieren:

git init
git add .
git commit -m "Initial commit"
git remote add origin https://dein-gittea.example.com/benutzer/projekt.git
git push -u origin main

Tipp: Vergiss nicht, main oder master konsistent zu nutzen.

SSH statt HTTPS

SSH ist komfortabel, wenn du häufig pushst:

  • Lade deinen SSH-Key in deinem Gitea-Profil hoch.
  • Verbinde das Repo z. B. mit:
git remote set-url origin ssh://git@dein-gittea.example.com:2222/benutzer/projekt.git

Typische Workflows in Gittea

  • Feature-Branch erstellen, Änderungen pushen
  • Pull Request (PR) öffnen, Reviewer zuweisen
  • Code-Review, Kommentare, Status-Checks
  • PR mergen (Merge, Squash oder Rebase)
  • Issues verknüpfen: “Fixes #42” im Commit/PR-Text schließt das Issue automatisch

Branch-Schutzregeln helfen, Qualität zu sichern: z. B. “PRs benötigen Review” oder “Status-Checks müssen grün sein”.

CI/CD mit Gittea

Optionen:

  • Gitea Actions: GitHub-Actions-ähnliche Workflows direkt in Gitea.
  • Externe Systeme via Webhook: z. B. Drone CI, Jenkins, GitLab Runner oder GitHub Actions (mit Mirror).

Startpunkt: https://docs.gitea.com/usage/actions und https://docs.gitea.com/usage/webhooks

Betrieb und Best Practices

  • Backups: Sichere regelmäßig den Ordner /data oder nutze die integrierten Backup-Funktionen.
  • Updates: Image aktualisieren und Container neu starten.
docker compose pull
docker compose up -d
  • E-Mail einrichten: SMTP konfigurieren, damit Benachrichtigungen funktionieren.
  • Benutzer und Teams: Organisationen nutzen, um Rechte sauber zu trennen.
  • Sicherheit: Starke Passwörter/SSO, 2FA aktivieren, regelmäßige Updates.
  • Monitoring: Logs im Blick behalten; optional Prometheus/Grafana integrieren.

Admin-Handbuch: https://docs.gitea.com/administration

Gittea vs. GitHub/GitLab

  • Funktionsumfang: GitHub/GitLab bieten riesige Ökosysteme. Gitea konzentriert sich auf das Wesentliche und bleibt leichtgewichtig.
  • Ressourcen: Gitea läuft schon auf kleinen VMs oder einem Raspberry Pi. GitLab braucht deutlich mehr.
  • Kontrolle: Mit Gitea hostest du selbst. Keine Vendor-Lock-ins, volle Datenhoheit.

Häufige Fragen

  • Wie viel Leistung braucht Gittea?

  • Für kleine Teams reichen 1–2 vCPU, 1–2 GB RAM. Wächst das Team, skaliere mit.

  • Ist Gittea sicher?

  • Ja, bei korrekter Konfiguration: HTTPS, Updates, 2FA, Backups. Sicherheitsmeldungen beachten.

  • Kann ich von GitHub/GitLab migrieren?

  • Ja. Gitea kann Repos, Issues und PRs importieren. Import-Assistent nutzen.

Migration: https://docs.gitea.com/usage/migrations

Fazit

Wenn du einen schnellen, einfachen und dennoch mächtigen Git-Server suchst, ist Gittea/Gitea eine hervorragende Wahl. Die Installation ist unkompliziert, der Betrieb günstig, und du behältst volle Kontrolle über Code, Nutzer und Prozesse. Probier es aus – in wenigen Minuten läuft dein eigener GitHub‑ähnlicher Service.