6 Commits
Author SHA1 Message Date
Nizz05andClaude Opus 5 fb10b9d94c Hero: Figur unter den Header, Kopfabschnitt auf Mobil und Marquee-Sprung
Drei Fehler an der Live-Seite:

1. Die Figur begann bei top-0 und ragte damit in die Navigationsleiste -
   Kopf und Schulter lagen hinter "Start" und "Ueber mich". Sie startet
   jetzt bei top-16 bzw. top-20, also genau unter dem Header.

2. Auf schmalen Screens war der Kopf komplett abgeschnitten. Das Bild
   skalierte ueber die Breite (h-auto w-full); bei 72 % Breite wird das
   hochformatige Motiv hoeher als sein Container, und items-end schneidet
   dann oben ab. Es skaliert jetzt durchgehend ueber die Hoehe
   (h-full w-auto object-bottom), damit passt es immer hinein.

3. Das Genre-Laufband sprang sichtbar zurueck. Zwei Kopien wurden um -50 %
   verschoben, aber eine Kopie ist auf breiten Bildschirmen schmaler als der
   Viewport - dadurch klaffte vor dem Neustart eine Luecke. Jetzt zwei Spuren
   mit min-w-full, beide um ihre volle eigene Breite (-100 %); Spur 2 steht
   beim Neustart exakt auf der Startposition von Spur 1. Das umgebende
   Element bekam ausserdem das fehlende overflow-hidden.

Nachgemessen bei 1265x720 und 375x812: Kopf unterhalb der Headerkante,
beide Spuren gleich breit und mindestens viewportbreit, kein horizontaler
Scroll.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 23:35:44 +02:00
Nizz05andClaude Opus 5 de7e8e3c37 CSP: Inline-Styles entfernt, Policy vom Build erzeugen lassen
Ein CSP-Header im Reverse-Proxy hat die Seite still zerlegt: Astro liefert
seine Skripte als inline type=module aus, "script-src 'self'" blockiert die.
Im Browser blieb data-reveal leer und das Mobilmenue reagierte nicht, ohne
dass eine Fehlermeldung sichtbar war.

Astro kennt die Hashes seiner eigenen Bundles, deshalb setzt jetzt der Build
die Policy per <meta> (security.csp in astro.config.mjs).

Damit die Policy auch fuer Styles streng bleiben kann, sind die letzten drei
style-Attribute raus: sobald eine CSP Hashes fuer Styles enthaelt, ignorieren
Browser 'unsafe-inline', inline gesetzte Farben waeren also ohnehin verloren.

- Laserstrahlen im Hero: .beam-1 bis .beam-5 im <style>-Block
- Genre-Akzentfarben: .accent-<name> statt berechnetem style-Attribut

Geprueft im Browser hinter Caddy: Skripte laufen, Laser-Winkel und
Akzentfarben stimmen, keine Verstoesse in der Konsole.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 23:03:57 +02:00
Nizz05andClaude Opus 5 50150639ee Reverse-Proxy in eigenes Projekt ausgelagert
Ein Caddy pro Compose-Projekt funktioniert nur, solange es ein Projekt gibt:
Port 443 laesst sich nicht teilen, und die TLS-Konfiguration verteilt sich
sonst ueber fremde Repos. Der Proxy liegt jetzt zentral in docker-edge.

- caddy-Service und Caddyfile entfernt
- web haengt im gemeinsamen externen Netz "edge" und veroeffentlicht
  keinen Port mehr
- json-file-Logrotation gesetzt, Docker rotiert sonst gar nicht
- README auf die neue Aufteilung umgeschrieben

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 22:49:34 +02:00
Nizz05andClaude Opus 5 c66d3fb276 Caddy in optionales Profil, damit belegte Ports 80/443 nicht blockieren
Auf dem Zielserver haelt bereits ein anderer Dienst Port 443, der Start des
Caddy-Containers scheiterte deshalb mit "port is already allocated". Zwei
Prozesse koennen sich einen Port nicht teilen.

- caddy laeuft nur noch mit "--profile edge"
- web veroeffentlicht 127.0.0.1:4321, damit ein vorhandener Reverse-Proxy
  darauf zugreifen kann, ohne dass der Port oeffentlich erreichbar wird
- README beschreibt beide Varianten inklusive vhost-Beispielen und dem
  Hinweis, dass Security-Header und IP-Maskierung dann im vorhandenen
  Proxy nachgezogen werden muessen

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 23:33:45 +02:00
Nizz05andClaude Opus 5 131b30f9b0 README: Deploy-Key statt HTTPS-Clone auf der VM
Das Repo ist privat, ein HTTPS-Clone auf dem Server wuerde interaktiv nach
Zugangsdaten fragen. Stattdessen ein repo-eigener Deploy-Key mit Nur-Lese-
Rechten und ein eigener Host-Alias, damit der Key nicht bei anderen
GitHub-Repos angeboten wird.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 23:28:25 +02:00
Nizz05andClaude Opus 5 074c87ed79 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>
2026-08-17 23:17:13 +02:00