leafittome/docs/git-forgejo.md
cschlaefke 6e22d9c3aa Projekt-Gerüst: Flutter-App mit Heute-Checkliste, Pflanzenverwaltung, Stellplätzen und Einstellungen
- Flutter/Dart (iOS + Android), Riverpod, go_router, i18n via ARB (deutsch)
- Feature-Struktur: today, plants, locations, household (V2-Platzhalter), settings
- Intervall-Modell: Aufgaben werden aus lastWatered/lastFertilized + Intervall berechnet
- In-Memory-Demo-Daten, Firebase-Anbindung folgt im nächsten Block
- Doku: Architektur, Firebase-Einrichtung, Forgejo-Git-Hosting

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 21:13:18 +02:00

2.1 KiB

Git-Hosting mit Forgejo auf dem Hetzner-VPS

Forgejo ist ein leichtgewichtiger, quelloffener Git-Server mit Web-Oberfläche (Fork von Gitea): Repositories, Issues, Releases — wie ein privates GitHub auf deinem eigenen Server.

1. Forgejo per Docker Compose installieren (auf dem VPS)

Auf dem VPS z. B. unter /opt/forgejo/docker-compose.yml:

services:
  forgejo:
    image: codeberg.org/forgejo/forgejo:12
    container_name: forgejo
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"    # Web-UI (dahinter Reverse-Proxy mit HTTPS setzen)
      - "2222:22"      # SSH für git push/pull
cd /opt/forgejo && docker compose up -d

Dann http://<vps-ip>:3000 öffnen → Ersteinrichtung durchklicken (SQLite als Datenbank reicht völlig) → Admin-Konto anlegen.

Empfohlen: Wie bei deinen anderen Diensten einen Reverse-Proxy (Caddy/Traefik/nginx) mit HTTPS davorschalten, z. B. git.deine-domain.de, und Port 3000 nicht öffentlich lassen. In den Forgejo-Einstellungen die Registrierung deaktivieren (Site Administration → Configuration), da nur du den Server nutzt.

2. SSH-Schlüssel hinterlegen (auf dem Mac)

# Vorhandenen Schlüssel anzeigen (oder mit ssh-keygen -t ed25519 neu erzeugen)
cat ~/.ssh/id_ed25519.pub

Inhalt in Forgejo unter Einstellungen → SSH-Schlüssel einfügen.

3. Repository anlegen und Planty pushen

In der Forgejo-Web-UI: Neues Repository → Name plantyohne README/Lizenz initialisieren (das Repo existiert lokal schon). Dann auf dem Mac:

cd ~/Documents/Projekte/Planty
git remote add origin ssh://git@<vps-host>:2222/<dein-nutzer>/planty.git
git push -u origin main

Ab dann genügt nach jedem Arbeitsstand ein git push.

4. Backup nicht vergessen

Der Ordner /opt/forgejo/data enthält alles (Repos + Datenbank). Nimm ihn in dein bestehendes VPS-Backup auf — zusammen mit der lokalen Kopie auf dem Mac hast du dann immer zwei vollständige Stände.