Zum Inhalt springen

Ueberblick

┌─────────────────────────────────────────────────────────┐
│ Cloudflare │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ Pages │ │ CDN │ │ DNS │ │ SSL │ │
│ │ (Static) │ │ (Assets) │ │ │ │ (auto) │ │
│ └─────┬─────┘ └──────────┘ └──────────┘ └────────┘ │
│ │ │
│ ┌─────┴──────────────────────────────────────────────┐ │
│ │ Cloudflare Tunnel │ │
│ └─────┬──────────────────────────────────────────────┘ │
└────────┼────────────────────────────────────────────────┘
┌────────┼────────────────────────────────────────────────┐
│ Hetzner VPS │
│ ┌─────┴──────────────────────┐ ┌───────────────┐ │
│ │ CMS │ │ PostgreSQL │ │
│ │ ┌───────────┐ ┌────────┐ │ │ │ │
│ │ │ Backend │ │Frontend│ │ │ Multi-Tenant │ │
│ │ │ (Go) │ │(React) │ │ │ (Tenant-ID) │ │
│ │ └───────────┘ └────────┘ │ │ WAL-G PITR │ │
│ └────────────────────────────┘ └───────────────┘ │
└─────────────────────────────────────────────────────────┘
KomponenteEntscheidungBegruendung
CMS BackendGo + Chi (Router) + Jet (Code-Gen)Schnelle Builds, kleine Binary, vorhandene Go-Expertise
CMS FrontendReact 19 + TanStack Start + Mantine 8Bewaehrter Stack, Mobile-first
DatenbankPostgreSQL self-hosted auf Hetzner$0 Kosten, keine Latenz, Audit-Trigger
Migrationengolang-migrateStandard in Go-Projekten
Multi-TenancyEine DB, Tenant-SpaltePragmatischste Loesung
AuthEigene Session-Auth (Cookie), 2FA per Email (SES)Einfach, kein TOTP-Setup noetig
Backup/PITRWAL-GBewaehrtes Konzept
Kunden-WebsitesAstro SSG → Cloudflare PagesPerformance, Sicherheit, kostenlos
Hosting CMSHetzner VPS + Cloudflare TunnelKein offener Port
E-MailAWS SES Frankfurt2FA-Codes, Password-Reset, Kontakt-Notifications
IDsUUIDv7Zeitbasiert, sortierbar, bessere Index-Performance
UebersetzungDeepL APIAutomatisch, Ergebnisse in DB gespeichert, spaeter editierbar
traffino/business/ # CMS + Docs
├── docs/ # Projektdokumentation (Astro Starlight)
├── cms/
│ ├── backend/ # Go (Chi, Jet, PostgreSQL)
│ ├── frontend/ # React 19, TanStack Start, Mantine 8
│ └── aws/ # Go Lambda Functions (Contact-Form, Analytics)
traffino/sites/ # Kunden-Websites (separates Repo)