- 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>
58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# 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`:
|
|
|
|
```yaml
|
|
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
|
|
```
|
|
|
|
```bash
|
|
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)
|
|
|
|
```bash
|
|
# 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 `planty` → **ohne** README/Lizenz initialisieren (das Repo existiert lokal schon). Dann auf dem Mac:
|
|
|
|
```bash
|
|
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.
|