Statische Hugo-Website für die Praxis für Naturheilkunde Heike Franzen in Zörbig, gebaut mit Nix-Flake und automatisch per Forgejo Actions in den Public-Branch veröffentlicht.
  • HTML 80.4%
  • Nix 19.3%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Alexander Stumpe 26ec7d7f8f
All checks were successful
Build public branch / build-public (push) Successful in 41s
Initialer Commit
2026-07-26 01:26:54 +02:00
.forgejo/workflows Initialer Commit 2026-07-26 01:26:54 +02:00
archetypes Initialer Commit 2026-07-26 01:26:54 +02:00
assets/images Initialer Commit 2026-07-26 01:26:54 +02:00
content/de Initialer Commit 2026-07-26 01:26:54 +02:00
docs Initialer Commit 2026-07-26 01:26:54 +02:00
layouts Initialer Commit 2026-07-26 01:26:54 +02:00
scripts Initialer Commit 2026-07-26 01:26:54 +02:00
themes Initialer Commit 2026-07-26 01:26:54 +02:00
.envrc Initialer Commit 2026-07-26 01:26:54 +02:00
.gitignore Initialer Commit 2026-07-26 01:26:54 +02:00
.gitmodules Initialer Commit 2026-07-26 01:26:54 +02:00
flake.lock Initialer Commit 2026-07-26 01:26:54 +02:00
flake.nix Initialer Commit 2026-07-26 01:26:54 +02:00
hugo.toml Initialer Commit 2026-07-26 01:26:54 +02:00
README.md Initialer Commit 2026-07-26 01:26:54 +02:00

Praxis für Naturheilkunde Heike Franzen

Dieses Repository enthält die statische Website der Praxis für Naturheilkunde Heike Franzen in Zörbig.

README und Website-Inhalte

Diese README ist die technische Dokumentation des Git-Repositories. Sie wird nicht automatisch auf der öffentlichen Website angezeigt.

Die sichtbaren Inhalte der Website liegen unter content/de/. Hugo erzeugt daraus die fertige statische Website.

Technischer Aufbau

  • Static-Site-Generator: Hugo
  • Theme: Hugo Scroll
  • Paketierung und lokale Entwicklungsumgebung: Nix Flake
  • Automatisches Deployment: Forgejo Actions
  • Ausgabeformat: statische HTML-, CSS-, Bild- und Asset-Dateien

Das Theme ist als Git-Submodule unter themes/hugo-scroll eingebunden. Zusätzlich ist es in flake.lock fest gepinnt, damit Nix-Builds reproduzierbar bleiben.

Lokale Entwicklung

Mit direnv:

direnv allow
site-serve

Ohne direnv:

nix develop
site-serve

Die lokale Vorschau ist danach unter http://127.0.0.1:1313/ erreichbar.

Wichtige Befehle

nix run .#serve      # lokale Hugo-Vorschau
nix run .#build      # baut die Website nach ./public
nix run .#check      # strenger Hugo-Build in ein temporäres Verzeichnis
nix build            # reproduzierbarer Nix-Build nach ./result
nix fmt flake.nix    # formatiert die Flake

Für eine produktive Domain kann die Hugo-Basis-URL beim Build gesetzt werden:

HUGO_BASEURL="https://www.example.de/" nix run .#build

Projektstruktur

  • content/de/ - deutsche Seiteninhalte
  • content/de/homepage/ - Abschnitte des Onepagers
  • content/de/impressum.md - Impressum
  • content/de/datenschutz.md - Datenschutzerklärung
  • content/de/haftungsausschluss.md - Haftungsausschluss
  • layouts/ - lokale Hugo-Templates und Theme-Overrides
  • layouts/partials/custom_head.html - individuelles Design und CSS
  • static/images/ - statische Bilder und Favicon
  • .forgejo/workflows/build-public.yml - Forgejo-Build und Veröffentlichung
  • flake.nix - Nix-Entwicklungsumgebung, Build-Apps und Checks

Forgejo-Build

Der Workflow .forgejo/workflows/build-public.yml läuft bei jedem Push auf main.

Ablauf:

  1. Repository auschecken
  2. Nix installieren
  3. Website mit nix run .#check prüfen
  4. Website mit nix run .#build nach dist/ bauen
  5. Inhalt von dist/ in den Branch public veröffentlichen

Der Branch public enthält nur die fertig gebaute Website und wird vom Workflow per Force-Push aktualisiert.

Optional kann in Forgejo die Repository-Variable HUGO_BASEURL gesetzt werden, zum Beispiel:

https://www.example.de/

Der Forgejo-Runner muss das Label docker bedienen können und externe Actions von GitHub abrufen dürfen.

Inhalte Bearbeiten

Onepager-Abschnitte werden über Markdown-Dateien in content/de/homepage/ gepflegt. Die Reihenfolge wird über weight in der Front Matter gesteuert.

Beispiel:

---
title: "Meine Schwerpunkte"
weight: 2
header_menu: true
---

Rechtliche Seiten liegen direkt unter content/de/.