Christoph Knappik
  • Home
  • About
  • Prototypes
  • Writing
  • Contact

Handover: Netlify-Anbindung der Quarto-Website

Zweck dieses Dokuments

Dieses Dokument dokumentiert den aktuellen Deployment-Stand der persönlichen Quarto-Website christophknappik.com. Es soll Codex bzw. zukünftigen Entwicklungsassistenten als technischer Kontext dienen, damit spätere Änderungen am Website-Projekt nicht versehentlich die Netlify-/DNS-/Quarto-Logik beschädigen.


Lokales Projekt

Maßgeblicher lokaler Projektpfad:

C:\Users\chris\10_Projekte\0005_Website

GitHub-Repository:

https://github.com/cjknappik/0005_Website.git

Branch:

main

Normales Arbeitsmuster:

cd C:\Users\chris\10_Projekte\0005_Website

git status
git add .
git commit -m "Update website"
git push

Netlify deployed automatisch nach einem Push auf main.


Grundarchitektur

Die Website ist eine statische Quarto-Website.

Zielarchitektur:

GitHub Repo: 0005_Website
        ↓
Netlify Build / Deploy
        ↓
christophknappik.com

Wichtig: Die interaktiven Apps werden nicht auf Netlify gehostet. Sie laufen separat auf Posit Connect Cloud und werden von der Website aus verlinkt.

Aktuelle Rollen:

christophknappik.com
= statische Quarto-Website / Content-Hub / Blog / Profil

Driver Analysis App
= Posit Connect Cloud

DWD Temperature App
= Posit Connect Cloud

Quarto-Konfiguration

Die zentrale Quarto-Konfiguration liegt in:

_quarto.yml

Relevanter Punkt:

project:
  type: website
  output-dir: docs

Quarto rendert die fertige Website lokal in:

docs/

Dieser Ordner ist im Git-Repo bewusst ignoriert, weil Netlify die Website selbst baut.


.gitignore

Wichtig: docs/ ist bewusst in .gitignore enthalten.

Grund:

  • lokal kann jederzeit mit quarto render ein docs/-Ordner erzeugt werden
  • der gerenderte Output soll aktuell nicht versioniert werden
  • Netlify rendert beim Deploy selbst und veröffentlicht den Output aus docs/

Wichtiger Grundsatz:

Versioniert werden die Quell-Dateien.
Nicht versioniert wird der gerenderte Website-Output.

Netlify-Konfiguration

Im Projektwurzelverzeichnis liegen zwei Netlify-bezogene Dateien:

netlify.toml
package.json

netlify.toml

Aktueller Inhalt:

[build]
  publish = "docs"

[[plugins]]
  package = "@quarto/netlify-plugin-quarto"

Bedeutung:

  • Netlify soll nach dem Build den Ordner docs veröffentlichen.
  • Das Quarto-Netlify-Plugin installiert/benutzt Quarto für den Build.
  • Der Quarto-Output wird bei Netlify erzeugt, nicht lokal aus Git gelesen.

package.json

Aktueller Inhalt:

{
  "dependencies": {
    "@quarto/netlify-plugin-quarto": "^0.0.5"
  }
}

Bedeutung:

  • bindet das Quarto-Netlify-Plugin für den Netlify-Build ein.

Netlify-Projekt

Netlify-Projektname:

christophknappik

Netlify-Subdomain:

christophknappik.netlify.app

Custom Domains in Netlify:

christophknappik.com
www.christophknappik.com

DNS-Verifikation in Netlify wurde erfolgreich erreicht.

Der SSL/TLS-Status kann nach DNS-Änderungen kurzzeitig noch auf Zertifikats-Provisionierung stehen. Netlify stellt das Let’s-Encrypt-Zertifikat automatisch aus, sobald DNS vollständig propagiert ist.


IONOS-DNS-Konfiguration

Die Domain bleibt bei IONOS. Die Nameserver wurden nicht zu Netlify umgezogen.

Bei IONOS wurden nur die Website-relevanten DNS-Records geändert.

Aktueller Zielzustand für Website-DNS:

A      @      75.2.60.5
CNAME  www    christophknappik.netlify.app

Die alten IONOS-Webhosting-Records wurden ersetzt bzw. entfernt:

A      @      217.160.0.165        [alt, entfernt/ersetzt]
AAAA   @      2001:8d8:...         [alt, entfernt]
A      www    217.160.0.165        [alt, entfernt]
AAAA   www    2001:8d8:...         [alt, entfernt]

Wichtig: Mail-relevante DNS-Einträge wurden nicht verändert und sollen nicht gelöscht werden.

Unverändert lassen:

MX
SPF / TXT
DKIM
DMARC
autodiscover
_domainconnect

Bekannte Browser-/Altpfad-Thematik

Vor der Netlify-Anbindung zeigte IONOS eine alte Default-Seite unter:

/defaultsite

Nach der Umstellung kann Chrome im normalen Browserprofil noch automatisch auf folgende alte URL ergänzen:

https://christophknappik.com/defaultsite

Das ist kein Netlify-Fehler. Im Inkognito-Fenster lädt die Website korrekt unter:

https://christophknappik.com/

Optional kann in netlify.toml später eine Redirect-Regel ergänzt werden:

[[redirects]]
  from = "/defaultsite"
  to = "/"
  status = 301

Diese Redirect-Regel ist nur sinnvoll, wenn alte Browser-Historien oder alte Links weiterhin /defaultsite aufrufen.


Wichtige Entwicklungsregel für zukünftige Inhalte

Die Website ist aktuell statisch. Netlify rendert Quarto beim Deploy.

Für normale .qmd-Seiten mit Markdown/Text/Bildern ist das unproblematisch.

Wenn später Blogposts oder Seiten mit R-Code, Python-Code oder rechenintensiven Analysen ergänzt werden, muss die Build-Strategie bewusst geprüft werden. Netlify ist nicht automatisch eine vollständige R-/Python-Ausführungsumgebung.

Empfohlene Strategie für spätere datenbasierte Artikel:

- Berechnungen lokal ausführen
- Ergebnisse / Grafiken / Artefakte als statische Outputs speichern
- Quarto-Seiten so bauen, dass Netlify sie statisch rendern kann

Oder alternativ:

- Quarto execute freeze / lokale Render-Strategie prüfen
- nur gerenderte oder eingefrorene Ergebnisse veröffentlichen

Codex sollte bei neuen datengetriebenen Blogposts nicht einfach davon ausgehen, dass Netlify R-Code serverseitig ausführen kann.


Deployment-Checkliste nach Änderungen

Nach Änderungen an Website-Inhalten:

cd C:\Users\chris\10_Projekte\0005_Website

git status
git add .
git commit -m "Update website"
git push

Danach in Netlify prüfen:

Deploys → aktueller Deploy → Published

Dann im Browser prüfen:

https://christophknappik.com/
https://www.christophknappik.com/

Bei Darstellungsproblemen:

- privaten Browser / Inkognito-Fenster testen
- Browser-Cache leeren
- prüfen, ob versehentlich /defaultsite aufgerufen wird

Nicht versehentlich ändern

Nicht ohne bewusste Entscheidung ändern:

- DNS-Records für Mail bei IONOS
- Nameserver der Domain
- Netlify publish directory: docs
- Quarto output-dir: docs
- .gitignore-Regel für docs/

Nicht die Apps in dieses Website-Deployment integrieren. Die Apps laufen separat auf Posit Connect Cloud und sollen von der Website aus verlinkt werden.


Aktuelle offene Punkte / TODO

  • Prüfen, ob SSL/TLS in Netlify final aktiv ist.
  • Optional /defaultsite → / Redirect in netlify.toml ergänzen.
  • Links zu den Posit-Connect-Cloud-Apps in projects.qmd bzw. auf der Startseite ergänzen.
  • Später ggf. Subdomains für Apps einrichten, z. B.:
drivers.christophknappik.com
boiling-point.christophknappik.com

Dies sollte erst erfolgen, wenn die App-URLs und die Posit-Connect-Cloud-Custom-Domain-Logik final geklärt sind.