Selbst gehosteter Git-Forge (schlanker Gitea-Fork) als zentraler, nicht-oeffentlicher Ablageort fuer Quellcode. Ersetzt GitHub/GitLab fuer das Projekt RevierManager. Laeuft als Docker-Container mit eigener PostgreSQL-Datenbank.
Status (2026-07-02): Im Homelab in Betrieb, voll eingerichtet. Beide Container laufen (Forgejo 15.0.3, PostgreSQL 16), Admin-Konto angelegt, privates Repo "revermanager" erstellt, Backup getestet und Cron-Job aktiv.
Warum Forgejo: autarkiekonform (kein Microsoft/GitHub, kein Fremd-Cloud), ressourcenschlank (ein Container, wenige hundert MB RAM), nicht oeffentlich. Verworfene Alternativen: GitHub (Microsoft-Prinzip), GitLab (Betriebslast fuer Ein-Personen-Projekt zu hoch).
| Feld | Wert |
|---|---|
| Dienst | Forgejo |
| Version | 15.0.3 (LTS-Track) |
| Image | codeberg.org/forgejo/forgejo:15 |
| Datenbank | PostgreSQL 16 (postgres:16-alpine) |
| DB-Nutzer | forgejo (technisch, intern) |
| Servername | fx-forgejo |
| Host-IP | 192.168.191.110 (LAN) |
| Admin-Konto (Web) | tfriedrich-adm |
| Server-Login (SSH) | tfriedrich-adm@fx-forgejo |
| Web-UI | http://192.168.191.110:3000 |
| Repository | revermanager (privat) |
| Git ueber SSH | Host-Port 2222 (Container-Port 22; nicht mit Server-SSH verwechseln) |
| Deploy-Verzeichnis | ~/forgejo-setup |
| Docker-Projektname | forgejo-setup |
| Externer Zugriff | nein - nur LAN, bei Bedarf via VPN, keine offenen Portfreigaben |
Geplanter Umzug: Spaeter auf einen kleinen Hetzner-Server. Da identische Docker-Compose-Bauweise, ist der Umzug ein Git-Push + Restore des letzten Backups. Keine Migration im engeren Sinn.
Zwei Container im selben internen Docker-Netzwerk (forgejo):
Persistenz ueber zwei benannte Docker-Volumes: forgejo-setup_forgejo-data (Repositories, Konfiguration, Uploads) und forgejo-setup_forgejo-postgres (Datenbank).
Alle Befehle aus dem Deploy-Verzeichnis (cd ~/forgejo-setup):
Version aktualisieren: immer zuerst ./backup.sh, dann docker compose pull, dann docker compose up -d. Forgejo fuehrt noetige DB-Migrationen beim Start selbst aus. Vor Major-Versionsspruengen die Release-Notes auf Breaking Changes pruefen.
Skript backup.sh sichert beides: Datenbank-Dump (SQL, gzip) und Datenverzeichnis (tar.gz aus dem Volume). Ablage unter ~/forgejo-setup/backups/, automatische Aufraeumung nach 14 Tagen. Cron-Job aktiv (taeglich 03:00 Uhr, Log in backup.log).
Kritisch: Backup auf derselben Maschine schuetzt nicht vor Hardware-Totalausfall. Der backups/-Ordner MUSS regelmaessig auf ein zweites Medium (NAS / externe Platte) gespiegelt werden - noch offen (siehe To-do).
| Symptom | Erste Pruefung |
|---|---|
| Web-UI nicht erreichbar | docker compose ps - laufen beide Container? |
| Forgejo startet nicht | docker compose logs forgejo - meist DB nicht erreichbar oder Volume-Rechte |
| database connection failed | Stimmt DB_PASSWORD in .env mit dem der DB ueberein? |
| Git-Push ueber SSH scheitert | Richtiger Port (2222)? SSH-Key hinterlegt? |
| Falsche Links in der UI | FORGEJO_DOMAIN in .env = tatsaechliche Server-IP/Domain? |
| Datum | Aenderung |
|---|---|
| 2026-07-02 | Ersteinrichtung im Homelab (fx-forgejo, 192.168.191.110), Stack laeuft, Admin-Konto + privates Repo revermanager angelegt, Backup + Cron aktiv, Betriebsdoku angelegt |