MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 8s
Remove outdated claims (CRDT, DocRooms, presence, .md files on disk) and document the actual architecture, API, permissions and known flaws. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
# MindSift Technische Dokumentation
|
|
|
|
Referenz für Entwickler und Administratoren. Alle Angaben wurden gegen den Code im Branch `dev` geprüft (Stand Oktober 2026). Abweichungen zwischen Doku und Code melde bitte als Fehler in [flaws.md](flaws.md).
|
|
|
|
## Inhalt
|
|
|
|
| Dokument | Inhalt |
|
|
|---|---|
|
|
| [architecture.md](architecture.md) | Aufbau, Technologie-Stack, Start, Konfiguration, Build |
|
|
| [database.md](database.md) | SQLite-Schema, Migrationen, Datenmodell |
|
|
| [api/rest.md](api/rest.md) | Alle REST-Endpunkte |
|
|
| [api/websocket.md](api/websocket.md) | Echtzeit über WebSocket und SSE, Ereignisse |
|
|
| [modules/triage.md](modules/triage.md) | Schnellerfassung und Triage |
|
|
| [modules/tasks.md](modules/tasks.md) | Aufgaben, Kanban, Alarme |
|
|
| [modules/workspace.md](modules/workspace.md) | Outliner-Notizen, Ordner, Tags |
|
|
| [modules/lists.md](modules/lists.md) | Geteilte Listen |
|
|
| [sharing-and-permissions.md](sharing-and-permissions.md) | Rollen, Gruppen, Freigaben |
|
|
| [reverse-proxy.md](reverse-proxy.md) | Nginx, Traefik, Caddy, Cloudflare |
|
|
| [theming.md](theming.md) | Themes und Design-Variablen |
|
|
| [flaws.md](flaws.md) | Bekannte Schwachstellen und technische Schulden |
|
|
|
|
## Überblick in 60 Sekunden
|
|
|
|
- **Ein Go-Binary** liefert REST-API, WebSocket/SSE und das eingebettete React-Frontend (`go:embed`). Es gibt genau einen Container und eine SQLite-Datei (`/data/mindsift.db`).
|
|
- **Datenhaltung:** vollständig in SQLite. Es gibt keine `.md`-Dateien auf der Platte; Markdown wird bei Bedarf aus den Blöcken erzeugt (`documents.markdown_cache`, Export als `.md`).
|
|
- **Echtzeit:** ein Hub mit Räumen und Benutzer-Kanälen. Verteilt werden Ereignisse nach REST-Änderungen. Es gibt keine CRDTs, Sperren oder Cursor-Presence.
|
|
- **Auth:** JWT (HS256, 30 Tage) mit `token_version` und Sperrliste, dazu API-Keys (`mindsift_sec_…`) für Webhooks.
|
|
- **Freigaben:** Aufgabenlisten und geteilte Listen mit Rolle Bearbeiter oder Leser, Notizen und Ordner nur lesend.
|
|
|
|
## Entwickeln
|
|
|
|
```bash
|
|
# Backend (Go 1.23)
|
|
go vet ./... && go test ./...
|
|
|
|
# Frontend (Node 22)
|
|
cd frontend && npm ci && npx tsc --noEmit && npm run build
|
|
```
|
|
|
|
Das Frontend wird für das Binary nach `cmd/server/dist` gebaut (siehe `Dockerfile`). Die CI läuft unter `.gitea/workflows/build-and-publish.yaml`.
|