Files
MindSift/Doku
2026-10-26 19:54:51 +01:00
..

📚 MindSift Technische Dokumentation & Wiki

Willkommen in der zentralen technischen Dokumentation von MindSift. Dieses Wiki dient als verbindliche, tiefgehende Referenz für Entwickler, DevOps-Ingenieure und Systemadministratoren. Es dokumentiert die Architektur, das Datenmodell, APIs, Echtzeit-Protokolle, Kernmodule sowie bekannte technische Schwachstellen der Plattform.


🧭 Inhaltsverzeichnis (Wiki-Navigation)

Doku/
├── README.md                  # Einstieg, Inhaltsverzeichnis & Gesamtübersicht (dieses Dokument)
├── architecture.md            # Systemarchitektur, Schichtenmodell, Concurrency & Stack
├── database.md                # SQLite-Datenbankdesign, Schemas, Indizes & Migrationen
├── api/
│   ├── rest.md                # Vollständige REST-API Referenz aller Endpunkte
│   └── websocket.md           # WebSocket-Echtzeitprotokoll, Rooms & Document Locking
├── modules/
│   ├── triage.md              # Modul 1: Triage & Quick-Dump (State Machine & Audio)
│   ├── tasks.md               # Modul 2: Aufgaben & Kanban-System (Alarme & Scheduler)
│   ├── workspace.md           # Modul 3: Workspace Outliner-Engine, Wiki-Links & Pure-DB Storage
│   └── lists.md               # Modul 4: Geteilte Listen (Live-Kollaboration & D&D)
├── sharing-and-permissions.md # Synchrones Teilen, Rollen, Isolation & Mount-Entkopplung
├── reverse-proxy.md           # Nginx, Traefik, Caddy, Cloudflare Konfiguration & SSE
├── theming.md                 # Single-File CSS Theme-Engine & Design-System
└── flaws.md                   # Technische Schwachstellen, Risiken & zukünftige Optimierungen

📑 Kapitel im Detail

  1. Systemarchitektur & Technologie-Stack
    Schichtenmodell, Go-Backend, React-Frontend, Concurrency-Handling und Thread-Safety.
  2. Datenbank-Design & SQLite Schema
    Vollständiges relationales Datenmodell, ER-Diagramm, Tabellendefinitionen, Indizes und Migrationsstrategie.
  3. REST-API Referenz
    Spezifikation aller Endpunkte für Authentifizierung, Gedanken, Aufgaben, Dokumente, Listen, Teams und Webhooks.
  4. WebSocket & Echtzeit-Synchronisation
    Gorilla WebSocket Hub, Rooms, Presence-Tracking, Yjs CRDT Kollaboration und SSE Fallback.
  5. Kernmodul: Triage & Quick-Dump
    Instant-Capture-Pipeline, Finite State Machine, Gestensteuerung, Spracheingabe und Webhook-Ingestion.
  6. Kernmodul: Aufgaben & Kanban-System
    Multi-Listen-Konzept, 3-Spalten Kanban-Board, Subtasks, Fälligkeiten und Multi-Channel Alarm-Ticker (SMTP, Discord, Webhooks).
  7. Kernmodul: Workspace & Outliner-Engine
    Logseq-inspirierte hierarchische Block-Engine, Zoom-Hoisting, Wiki-Links, Pure-Database Storage und Globales To-Do Rollup.
  8. Kernmodul: Geteilte Listen & Kollaboration
    Listen-Typen, Mengen, Kategorien, Live-Checkoff und Drag & Drop Sortierung.
  9. Synchrones Teilen & Berechtigungskonzept
    Rollenmodell (Admin/Member), System-Isolations-Modi (strict_private, teams_only, open), entkoppelte Ordner-Mounts und Notizen-Freigaben.
  10. Reverse-Proxy- & Ingress-Handbuch
    Produktionsfertige Konfigurationen für Nginx, Traefik, Caddy, Cloudflare und Apache mit WebSocket-Upgrades und SSE-Streaming.
  11. Single-File Theming & Design-System
    1-Datei = 1-Theme Philosophie, die 6 CSS-Variablen-Blöcke, Semantische CSS-Klassen und Geometrie-Steuerung.
  12. Technische Schwachstellen & Optimierungspotenziale (Flaws)
    Kritische Analyse von Concurrency-Grenzen, Volltextsuche, Viewport-Anpassung und Skalierungs-Engpässen.

🏛️ Systemübersicht (High-Level Architektur)

graph TB
    subgraph Client ["Client Layer (Browser / PWA)"]
        UI["React 18 SPA (Vite, TS, Tailwind)"]
        WSClient["WebSocket Client (Auto-Reconnect)"]
        Cache["IndexedDB / Offline Queue"]
    end

    subgraph ReverseProxy ["Reverse Proxy / Gateway"]
        Traefik["Traefik / Nginx (HTTPS, WSS, Rate Limits)"]
    end

    subgraph Backend ["Backend Layer (Go 1.23 Engine)"]
        ChiRouter["Chi Router (REST API)"]
        WSHub["Gorilla WebSocket Hub & Lock Manager"]
        AlarmTicker["Alarm Scheduler (Background Ticker)"]
        StorageEngine["Storage Layer (Domain & Repositories)"]
    end

    subgraph Storage ["Storage Layer"]
        SQLite[("SQLite WAL Database (/data/mindsift.db)")]
    end

    subgraph External ["Externe Schnittstellen"]
        HomeAssistant["Home Assistant / Webhooks"]
        Discord["Discord Webhooks"]
        SMTPServer["SMTP Server (E-Mail Alarme)"]
    end

    UI -->|HTTPS REST| Traefik
    WSClient -->|WSS Realtime| Traefik
    Traefik --> ChiRouter
    Traefik --> WSHub
    ChiRouter --> StorageEngine
    StorageEngine --> SQLite
    AlarmTicker --> Discord
    AlarmTicker --> SMTPServer
    HomeAssistant -->|POST /api/v1/inbox| Traefik
    HomeAssistant -->|POST /api/v1/webhooks/ingest| Traefik

🛠️ Schnellstart für Entwickler

Voraussetzungen

  • Go: 1.22 oder 1.23+
  • Node.js: 20+ (LTS) & npm
  • Container-Runtime: Docker oder Podman

Lokale Entwicklung ohne Container

# 1. Repository klonen
git clone https://git.dsit.me/sandrodach/MindSift.git
cd MindSift

# 2. Frontend Abhängigkeiten installieren & Dev-Server starten
cd frontend
npm install
npm run dev

# 3. Backend starten (in neuem Terminal)
cd ..
go run ./cmd/server

Container Build & Testlauf (wie in der CI/CD)

# Backend-Tests ausführen
podman run --rm -v $(pwd):/app:z -w /app golang:1.23 go test -v ./internal/...

# Frontend Typecheck & Build testen
podman run --rm -v $(pwd):/app:z -w /app/frontend node:20 sh -c "npx tsc --noEmit && npm run build"

# Komplettes Multi-Stage Image bauen
podman build -t mindsift:dev .