Files
RoggioApp/Brainstorm/260426/07_TechStack_Proposal.md
2026-04-26 19:42:42 +02:00

3.5 KiB
Executable File

RoggioApp - Tech-Stack Empfehlung (Hetzner, Schmal, API-First)

Prämissen

  1. Hetzner-Ökosystem: Performant, günstig, viel Bandbreite. Eigene VMs via Hetzner Cloud (Console) sind in Sekunden da.
  2. So schmal wie möglich (Lean): Keine Over-Engineering-Monster (wie Kubernetes), wenn Docker Compose reicht. Wenig Wartungsaufwand für das Kollektiv.
  3. Zukunftssicher & Flexibel: API-First, Graph-Datenmodell (ECS-Ansatz), Integration mit Nextcloud (WebDAV/OIDC) & WordPress.

Der empfohlene Tech-Stack

1. Infrastruktur & Hosting (Die Basis)

  • Server: Hetzner Cloud (z.B. CX22 oder CPX21). Reicht völlig für den Anfang, skaliert in Sekunden.
  • Orchestrierung: Docker Compose. Kein K8s, kein Swarm. Eine einfache docker-compose.yml, die alle Core-Services hochzieht. Das ist extrem wartungsarm und portabel.
  • Reverse Proxy: Nginx Proxy Manager (oder Caddy). Extrem schmal, kümmert sich automatisch um Let's Encrypt SSL-Zertifikate und leitet Traffic auf die Docker-Container (wie wir es lokal schon erfolgreich getestet haben!).

2. Die Datenhaltung (Das Herzstück)

  • Datenbank: PostgreSQL.
    • Warum: Absoluter Industrie-Standard, bombensicher für Finanz-Transaktionen und durch die exzellente JSONB-Unterstützung perfekt für unser flexibles "Traits/Eigenschaften"-Modell.
  • Caching / Message Broker (Optional, erst später zuschalten): Redis.
    • Warum: Wenn später WordPress alle 2 Sekunden den Kalender anfragt, puffert Redis das, damit Postgres nicht schwitzt. Für den Start (MVP) können wir das aber noch weglassen ("so schmal wie möglich").

3. Das Backend (Die API)

  • Sprache: Node.js mit TypeScript.
    • Warum: Enorme Community, sehr schnell entwickelt, und (das ist der Hauptgrund) wir können Code und Typen zwischen Frontend und Backend teilen!
  • ORM (Datenbank-Mapper): Prisma.
    • Warum: Es gibt nichts Besseres für TypeScript und Postgres. Es generiert uns typsichere Abfragen, verwaltet die Datenbank-Migrationen und macht das Jonglieren mit unserem Graph/Node-Modell deutlich angenehmer als rohes SQL.
  • Framework: NestJS (oder leichtgewichtig: Hono / Express).
    • Empfehlung für euch: Wenn es sauber und "Enterprise-like" strukturiert sein soll: NestJS. Wenn es absolut schmal und pfeilschnell (Edge-ready) sein soll: Hono.

4. Die Frontends (Das Gesicht)

  • Core-App (Kollektiv & Gäste Web-Portal): React (gebaut mit Vite oder Next.js).
    • Warum: Absoluter Standard. Riesiges Ökosystem an Kalender- und UI-Bibliotheken (z.B. Tailwind CSS, shadcn/ui).
    • Architektur: Eine Single-Page-Application (SPA) oder statisch exportierte Seite, die direkt mit dem Node-Backend redet.
  • Marketing (bestehend): WordPress (bei Hetzner Webhosting).
    • Warum: Ihr habt es schon, jeder kann Inhalte einpflegen. Zieht die Buchungsdaten über eine simple REST-Schnittstelle von unserem Node-Backend.
  • Dateien / Auth (bestehend): Nextcloud (bei Hetzner Storage Share).
    • Integration: Das Node-Backend authentifiziert sich per OAuth2/OIDC an Nextcloud und speichert Rechnungen per WebDAV dort ab.

Zusammenfassung des MVP-Setups (Schmalster Weg)

  1. Eine Hetzner Cloud VM
  2. Darauf läuft Docker Compose
  3. Darin laufen genau 3 Container:
    • Nginx Proxy Manager (für SSL und Domains)
    • PostgreSQL (Die Datenbank)
    • Node.js (Hono/Prisma) (Das Backend + liefert das kompilierte React-Frontend aus)