Init: RoggioApp Architecture, Prisma Schema, API MVP
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# RoggioApp - Langzeit-Vision & Hardware-Schnittstellen
|
||||
|
||||
## 1. Lokale Resilienz (Datenbank-Mirroring)
|
||||
* **Ziel:** Die Cloud (Hetzner) darf ausfallen oder das Internet auf dem Gelände streiken, ohne dass der Betrieb komplett lahmgelegt wird.
|
||||
* **Ansatz:** Ein lokales Mirror-System für die Datenbank.
|
||||
* *Architektur-Implication:* PostgreSQL erlaubt logische Replikation (Master-Slave oder Master-Master Konzepte). Wir sollten das Backend so bauen, dass es (später) Offline-First / Sync-Fähigkeiten bekommt oder zumindest ein lokaler Read-Replica Server auf dem Gelände läuft. (Für den Start bauen wir Single-Node, halten uns aber die Multi-Node Replikation in Postgres offen).
|
||||
|
||||
## 2. Zentrale User-Verwaltung (Identity & Access Management - IAM)
|
||||
* **Ziel:** Das Auth-System (Nextcloud / OIDC) soll in Zukunft der einzige Schlüssel für *alles* sein.
|
||||
* **Geplante Erweiterungen für User:**
|
||||
* WireGuard VPN-Profile
|
||||
* VoIP / SIP-Accounts (Telefonie)
|
||||
* E-Mail Accounts
|
||||
* NFC / RFID Zugangskontrolle (Türen)
|
||||
* *Architektur-Implication:* Nextcloud als OIDC-Provider ist hier bereits ein sehr guter Startpunkt. Wir dürfen in der RoggioApp keine eigenen, isolierten "User-Passwort"-Tabellen bauen. Die RoggioApp referenziert nur eine globale `user_id` (z.B. aus LDAP oder Nextcloud), an der die Hardware-Schlüssel hängen.
|
||||
|
||||
## 3. Home Automation & IoT (Der Campus)
|
||||
* **Ziel:** Smarte Steuerung und Überwachung der physischen Infrastruktur vor Ort.
|
||||
* **Core-Technologien:** HomeAssistant, MQTT, LoRaWAN.
|
||||
* **Kritische Systeme:**
|
||||
* PV / Solar Management (Strom)
|
||||
* Wasserspeicher (Infrastruktur)
|
||||
* Zugangskontrolle (Smart Locks)
|
||||
* *Architektur-Implication:* Unser Konzept der "Units" und "Traits" greift hier perfekt!
|
||||
* Eine Unit (z.B. Zirkuswagen) bekommt in unserer Datenbank den Trait `has_smart_lock`.
|
||||
* In diesem Trait speichern wir die MQTT-Topic-ID (`/house/zirkuswagen/lock`).
|
||||
* Wenn im Event "Buchung" der Status auf "Check-in" wechselt, feuert unser Node-Backend einen MQTT-Befehl an den lokalen HomeAssistant, um den Code des Gastes auf das Schloss zu spielen.
|
||||
|
||||
## Claras Fazit
|
||||
Die Weichenstellung ist klar: Das System ist kein reines "Software-Tool", sondern das Betriebssystem für ein physisches Gelände. Die strikte Trennung von Core-Logik, externem Auth-Provider und MQTT-fähigen Hardware-Layern sichert uns ab. Keine dieser Anforderungen sprengt unseren API-First / Node.js / Postgres Stack – im Gegenteil, MQTT und OIDC lassen sich in Node.js hervorragend nativ integrieren.
|
||||
Reference in New Issue
Block a user