Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Forgejo

Inhaltsverzeichnis

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
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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.

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 einem HostPath-Volume 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.
  • Ein NFS-Server für persistente Speicherung.
  • Ein SMTP-Server für E-Mail-Benachrichtigungen.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin