Forgejo #
Forgejo ist eine quelloffene, selbst gehostete Git-Plattform, die eine umfassende Lösung für die Versionskontrolle von Code, Projektmanagement und CI/CD bietet. Es ist ein Fork von Gitea und konzentriert sich auf die Community-Entwicklung.
Status #
Deployment #
Quelle #
Das Projekt basiert auf der offiziellen Forgejo-Website. Das Docker-Image stammt von codeberg.org/forgejo/forgejo. MariaDB: Offizielles Docker Image
Dokumentation #
Die offizielle Dokumentation von Forgejo ist unter forgejo.org/docs zu finden. Forgejo GitHub Repository
Funktion #
Dieser Dienst bietet eine vollständige Git-Hosting-Lösung mit Funktionen wie Repository-Verwaltung, Issue-Tracking, Pull Requests, Wiki und CI/CD-Integration. Er ist über git.zyria.de zugänglich.
Lokale Anpassungen #
Die umfangreiche Konfiguration erfolgt über Umgebungsvariablen in der values.yaml-Datei.
Crawler-Schutz (Traefik) #
Der Schutz ist auf KI-Trainings-Crawler und aggressive SEO-Indexer ausgerichtet
und lässt Automatisierung bewusst unangetastet. Die Zuordnung erfolgt über die
Router-Priorität in traefik-routes.yaml:
| Priorität | Trifft auf | Middleware | Limit |
|---|---|---|---|
| 300 | bekannte KI-/Indexer-User-Agents | ai-bot-guard |
1/s, Burst 5 |
| 200 | /api/*, Git-über-HTTPS, archive/ |
automation |
200/s, Burst 400 |
| Ingress | übriger Web-Traffic | baseline |
50/s, Burst 100 |
Der KI-Bot-Router hat die höchste Priorität und greift damit auch auf
API-Pfaden. Forgejo Actions, git clone/push und die Paket-Registry laufen über
die Automatisierungs-Spur und werden praktisch nicht gebremst.
Statt zu drosseln lässt sich für KI-Bots auch hart mit 403 abweisen: dazu im
Router forgejo-ai-bots die Middleware von ai-bot-guard auf ai-bot-deny
umstellen.
Die Bot-Liste steht als Regex in traefik-routes.yaml. Bewusst nicht enthalten
sind Googlebot/Bingbot (halten sich an robots.txt) sowie generische Clients wie
curl oder python-requests (werden von legitimem Tooling genutzt).
Wichtige Einstellungen #
- Ingress: Der Zugriff auf die Weboberfläche erfolgt über einen Ingress mit einem Hostnamen.
- SSH: Der Git-SSH-Zugriff wird über einen LoadBalancer-Service auf Port 22 bereitgestellt.
- Datenbank: Eine MariaDB-Datenbank läuft als Sidecar-Container.
- Speicher: Sowohl die Git-Daten als auch die Datenbank werden persistent auf Longhorn-Volumes (PVC) gespeichert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/forgejo-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/forgejo | kubectl apply -n forgejo -f -Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein Ingress-Controller (z.B. Traefik) für den externen Zugriff.
- Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
- Longhorn: Als Storage-Provider für die PersistentVolumes.
- Ein SMTP-Server für E-Mail-Benachrichtigungen.