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:
2026-08-17 23:17:13 +02:00
co-authored by Claude Opus 5
commit 074c87ed79
38 changed files with 7740 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
// @ts-check
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
import sitemap from '@astrojs/sitemap';
import tailwindcss from '@tailwindcss/vite';
// https://astro.build/config
export default defineConfig({
// Muss mit SITE.url in src/data/site.ts uebereinstimmen.
site: 'https://djnizz.at',
// Alle Seiten werden beim Build vorgerendert (maximale Performance).
// Der Node-Adapter serviert sie und erlaubt es, spaeter einzelne Routen
// (z. B. /api/booking) mit `export const prerender = false` dynamisch zu machen.
adapter: node({ mode: 'standalone' }),
integrations: [sitemap()],
image: {
// Bilder werden beim Build zu AVIF/WebP konvertiert.
responsiveStyles: true,
},
vite: {
plugins: [tailwindcss()],
},
});