Init: RoggioApp Architecture, Prisma Schema, API MVP
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user