Files
tsv08kulmbach-website/config/config.example.php
Felix Schneider 0f19729a88 Neubau Fundament + Startseite: Designsystem, PHP-Komponenten, Brevo-Formular, Instagram-Sync
- Ordnerstruktur mit public/-Docroot, Deny-.htaccess für app/bin/config/data/storage
- CLAUDE.md mit Leitplanken (self-hosted only, Single Source of Truth, Component-first)
- Design-Tokens aus alter Seite extrahiert (Akzent #e20612, Coolvetica/Abel als woff2)
- Front Controller mit Routen-Register, Sitemap, Canonical, JSON-LD (SportsClub)
- Startseite: Hero, Instagram-Feed (lokaler Cache), Historie/Sportheim, Stats, Partner, Kontakt
- Kontaktformular via PHPMailer/Brevo mit Honeypot + HMAC-Time-Trap (kein reCAPTCHA)
- bin/instagram-sync.php: Scraper mit Strategie-Kette, flock, atomarem Cache, lokalen Bildern

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 21:16:44 +02:00

39 lines
1.3 KiB
PHP

<?php
/**
* Vorlage für config/config.php — kopieren und Werte eintragen:
* cp config/config.example.php config/config.php
*
* config.php ist gitignored und liegt außerhalb des Webroots (zusätzlich per .htaccess gesperrt).
*/
return [
// Kanonische Basis-URL ohne trailing slash (für Canonical, OG, Sitemap).
'base_url' => 'https://www.tsv08kulmbach.de',
// 'production' oder 'development' (steuert Fehleranzeige).
'env' => 'production',
// Geheimer Schlüssel für die HMAC-Time-Trap der Formulare.
// Generieren mit: php -r "echo bin2hex(random_bytes(32));"
'app_secret' => 'CHANGE_ME',
// Brevo SMTP (Login + SMTP-Schlüssel aus dem Brevo-Dashboard, nicht das Konto-Passwort).
'smtp' => [
'host' => 'smtp-relay.brevo.com',
'port' => 587, // STARTTLS
'username' => 'BREVO_LOGIN',
'password' => 'BREVO_SMTP_KEY',
// Absender muss in Brevo als Sender verifiziert sein.
'from' => 'info@tsv08kulmbach.de',
'from_name' => 'TSV 08 Kulmbach',
// Empfänger der Formular-Mails.
'to' => 'info@tsv08kulmbach.de',
],
// Instagram-Scraper (bin/instagram-sync.php).
'instagram' => [
'username' => 'tsv08kulmbach',
'max_posts' => 9,
],
];