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_WebsiteGitHub-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 pushNetlify 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: docsQuarto 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 rendereindocs/-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
docsverö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 = 301Diese 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 pushDanach 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 innetlify.tomlergänzen. - Links zu den Posit-Connect-Cloud-Apps in
projects.qmdbzw. 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.