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

Inhaltsverzeichnis

git-pages
#

Statischer Seiten-Server für Forgejo-Repositories, analog zu GitHub Pages.

Upstream: codeberg.org/git-pages/git-pages

Der konkrete Hostname steht im Ingress in values.yaml; hier steht dafür <pages-domain>.

URLs
#

URL Beschreibung
<pages-domain> Hauptdomain
<user>.<pages-domain> Benutzer-Seiten
<user>.<pages-domain>/<repo> Repo-spezifische Seiten

Funktionsweise
#

git-pages zieht Inhalte aus Forgejo-Repositories und stellt sie als statische Webseiten bereit. Seiten werden über Webhooks aus Forgejo aktualisiert.

Repository-Konvention
#

Ein Repository namens pages im Account <user> (Branch main) wird unter <user>.<pages-domain> erreichbar. Weitere Repos werden unter dem Pfad <user>.<pages-domain>/<repo> eingebunden.

Forgejo-Integration
#

Webhook konfigurieren
#

In jedem Forgejo-Repository, das Seiten publizieren soll, unter Settings → Webhooks → Add Webhook → Gitea eintragen:

  • Target URL: http://git-pages.git-pages.svc.cluster.local:3000
  • HTTP Method: POST
  • Content Type: application/json
  • Events: Push

Erste Seite deployen
#

1# Pages-Repository in Forgejo erstellen und Inhalte pushen
2git init my-site
3cd my-site
4echo '<h1>Hello from git-pages!</h1>' > index.html
5git add . && git commit -m "initial"
6git remote add origin https://git.zyria.de/<user>/pages.git
7git push -u origin main

Konfiguration
#

Die Serverkonfiguration liegt als ConfigMap in values.yaml (configMaps.config). Datenpfad: PVC git-pages-data (5Gi, Longhorn), gemountet unter /app/data.

TLS
#

Wildcard-Zertifikat *.<pages-domain> via cert-manager (ClusterIssuer acmedns). Traefik übernimmt die TLS-Terminierung.

Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin