Website djnizz.at: Hero- und About-Sektion mit Docker-Deployment
Astro 7 mit Tailwind 4 und Node-Adapter. Alle Seiten werden vorgerendert, der Node-Server ist dabei, damit spaeter einzelne Routen (Booking-Formular) ohne Umbau am Deployment dynamisch werden koennen. Inhalt: - Fullscreen-Hero mit freigestelltem Render, animierten Lasern und Genre-Laufband; Typografie als HTML statt eingebranntem Bildtext - About-Sektion mit Genre-Karten und Eckdaten - Impressum und Datenschutzerklaerung - Zentrale Inhaltsdatei src/data/site.ts Technik: - Selbst gehostete Schriften, keine Cookies, kein Tracking, keine externen Requests - Docker Multi-Stage (238 MB) hinter Caddy mit automatischem HTTPS, Security-Headern und IP-maskierten Logs - scripts/cutout.mjs stellt den Render ueber eine Sobel-Kantenkarte frei und entfernt eingeschlossene Hintergrundflaechen Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
{
|
||||
# Mailadresse fuer Let's Encrypt (Ablaufwarnungen). Ueberschreibbar per .env
|
||||
email {$ACME_EMAIL:business.djnizz@gmail.com}
|
||||
}
|
||||
|
||||
# --- Weiterleitung www -> Apex ----------------------------------------------
|
||||
# Setzt einen DNS-A-Record fuer www.djnizz.at voraus. Wenn es den nicht gibt,
|
||||
# diesen Block auskommentieren, sonst versucht Caddy dauerhaft erfolglos ein
|
||||
# Zertifikat dafuer zu holen.
|
||||
www.{$DOMAIN:djnizz.at} {
|
||||
redir https://{$DOMAIN:djnizz.at}{uri} permanent
|
||||
}
|
||||
|
||||
# --- Hauptseite -------------------------------------------------------------
|
||||
{$DOMAIN:djnizz.at} {
|
||||
encode zstd gzip
|
||||
|
||||
header {
|
||||
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||||
X-Content-Type-Options "nosniff"
|
||||
X-Frame-Options "SAMEORIGIN"
|
||||
Referrer-Policy "strict-origin-when-cross-origin"
|
||||
Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=()"
|
||||
Cross-Origin-Opener-Policy "same-origin"
|
||||
-Server
|
||||
}
|
||||
|
||||
# Astro haengt einen Content-Hash an alle Assets unter /_astro/ -
|
||||
# die duerfen daher unbegrenzt gecacht werden.
|
||||
# ">" ersetzt den Header, statt einen zweiten danebenzustellen -
|
||||
# der Node-Adapter setzt fuer gehashte Assets bereits ein Cache-Control.
|
||||
@immutable path /_astro/*
|
||||
header @immutable >Cache-Control "public, max-age=31536000, immutable"
|
||||
|
||||
reverse_proxy web:4321
|
||||
|
||||
log {
|
||||
output file /var/log/caddy/access.log {
|
||||
roll_size 10MiB
|
||||
roll_keep 4
|
||||
roll_keep_for 336h
|
||||
}
|
||||
# Client-IPs werden gekuerzt und Cookies/Auth-Header nicht mitgeloggt.
|
||||
# Muss zur Datenschutzerklaerung passen.
|
||||
format filter {
|
||||
wrap json
|
||||
fields {
|
||||
request>remote_ip ip_mask {
|
||||
ipv4 24
|
||||
ipv6 32
|
||||
}
|
||||
request>headers>Cookie delete
|
||||
request>headers>Authorization delete
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user