3.5 KiB
Executable File
3.5 KiB
Executable File
RoggioApp - Tech-Stack Empfehlung (Hetzner, Schmal, API-First)
Prämissen
- Hetzner-Ökosystem: Performant, günstig, viel Bandbreite. Eigene VMs via Hetzner Cloud (Console) sind in Sekunden da.
- So schmal wie möglich (Lean): Keine Over-Engineering-Monster (wie Kubernetes), wenn Docker Compose reicht. Wenig Wartungsaufwand für das Kollektiv.
- 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.
- Warum: Absoluter Industrie-Standard, bombensicher für Finanz-Transaktionen und durch die exzellente
- 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)
- Eine Hetzner Cloud VM
- Darauf läuft Docker Compose
- 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)