MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 39s
📚 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
├── theming.md # Single-File CSS Theme-Engine & Design-System
└── flaws.md # Technische Schwachstellen, Risiken & zukünftige Optimierungen
📑 Kapitel im Detail
- Systemarchitektur & Technologie-Stack
Schichtenmodell, Go-Backend, React-Frontend, Concurrency-Handling und Thread-Safety. - Datenbank-Design & SQLite Schema
Vollständiges relationales Datenmodell, ER-Diagramm, Tabellendefinitionen, Indizes und Migrationsstrategie. - REST-API Referenz
Spezifikation aller Endpunkte für Authentifizierung, Gedanken, Aufgaben, Dokumente, Listen, Teams und Webhooks. - WebSocket & Echtzeit-Synchronisation
Gorilla WebSocket Hub, Rooms, Presence-Tracking, Document Locking Mechanismen und Polling-Fallback. - Kernmodul: Triage & Quick-Dump
Instant-Capture-Pipeline, Finite State Machine, Gestensteuerung, Spracheingabe und Webhook-Ingestion. - Kernmodul: Aufgaben & Kanban-System
Multi-Listen-Konzept, 3-Spalten Kanban-Board, Subtasks, Fälligkeiten und Multi-Channel Alarm-Ticker (SMTP, Discord, Webhooks). - Kernmodul: Workspace & Outliner-Engine
Logseq-inspirierte hierarchische Block-Engine, Zoom-Hoisting, Wiki-Links, Pure-Database Storage und Globales To-Do Rollup. - Kernmodul: Geteilte Listen & Kollaboration
Listen-Typen, Mengen, Kategorien, Live-Checkoff und Drag & Drop Sortierung. - Synchrones Teilen & Berechtigungskonzept
Rollenmodell (Admin/Member), System-Isolations-Modi (strict_private,teams_only,open), entkoppelte Ordner-Mounts und Notizen-Freigaben. - Single-File Theming & Design-System
1-Datei = 1-Theme Philosophie, die 6 CSS-Variablen-Blöcke, Semantische CSS-Klassen und Geometrie-Steuerung. - Technische Schwachstellen & Optimierungspotenziale (Flaws)
Kritische Analyse von Concurrency-Grenzen, WebSocket-Proxies, Undo/Redo, Volltextsuche 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 .