Some checks failed
CD / Build and push images (push) Successful in 3m57s
CD / Deploy to Test (push) Successful in 11s
CI / Lint, typecheck, test (push) Successful in 4m32s
CI / Build container images (push) Has been skipped
CD / Smoke tests against Test (push) Successful in 1m14s
CD / Promote to Int (push) Successful in 11s
CI / Auth e2e pack (push) Failing after 2m51s
CI / Import/export fidelity gate (push) Has been skipped
Semantics changed from the issue during planning (documented there, comment 1192): favorites are PERSONAL per user, not pond-wide — the sys-fav label approach is dropped entirely. Storage is a page_favorites table (userId+pageId, FK cascade); PUT/DELETE /pages/:id/favorite toggles idempotently and needs read access only (#60 404 semantics — a star is a note-to-self, not a page modification), GET /ponds/:id/favorites lists the account's stars sliced to still-readable pages. Trashed pages keep their rows, so restore keeps the star; purge cascades it away. Web: one shared ['favorites', pondId] query feeds the TopBar star (between labels and history, golden when set), the golden tree icons in the sidebar, and a latching "Favorites" filter button next to the view switch that narrows either view (combinable with the label filter). No public-API/MCP exposure — with the label approach gone, that parity is no longer free; favorites stay UI-only for now. New favorites e2e pack (star toggle, golden icon, filter, per-user isolation) wired into CI; DB suite covers the round-trip, read gating, and the trash/restore/purge lifecycle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fb2VzvcoBPHkjh8bZ6PzQn
146 lines
7.1 KiB
Markdown
146 lines
7.1 KiB
Markdown
# Dorfteich — was es ist und warum du es haben willst
|
|
|
|
_Englisches Original: [docs/features.md](../features.md)_
|
|
|
|
Dorfteich ist ein Open-Source-Wiki für Menschen, die gemeinsam denken
|
|
und schreiben wollen — in Echtzeit, auf dem eigenen Server, ohne ihr
|
|
Wissen einem Cloud-Konzern zu überlassen.
|
|
|
|
Der Name kommt vom Dorfteich: dem Ort, an dem das ganze Dorf
|
|
zusammenkommt. Dein Wiki ist in **Teiche** gegliedert — ein persönlicher
|
|
Teich für jedes Mitglied, dazu gemeinsame Teiche für Teams, Vereine,
|
|
Familien oder Projekte.
|
|
|
|
## Gemeinsam schreiben, live
|
|
|
|
- **Echtzeit-Zusammenarbeit.** Öffne dieselbe Seite wie deine Kollegin
|
|
und seht euch gegenseitig tippen — mit benannten Cursorn und einer
|
|
Anwesenheitsleiste, die zeigt, wer auf der Seite ist. Kein Sperren,
|
|
keine „Jemand anderes bearbeitet gerade"-Dialoge, keine verlorenen
|
|
Änderungen.
|
|
- **Funktioniert offline.** Tippe weiter, wenn die Verbindung abreißt;
|
|
deine Änderungen fließen automatisch wieder ein, sobald du online bist.
|
|
- **Ein freundlicher Editor.** Überschriften, Listen, Aufgabenlisten,
|
|
Tabellen, Zitate, Code-Blöcke und Bilder — mit vollem
|
|
**Markdown**-Roundtrip: Was du schreibst, kann das System jederzeit
|
|
wieder als sauberes Markdown verlassen.
|
|
- **Wikilinks.** Tippe `[[seiten-name]]`, um Seiten zu verlinken. Links
|
|
auf Seiten, die es noch nicht gibt, werden für dich gesammelt — ein
|
|
Klick legt sie an. „Verlinkt von" zeigt dir, wo jede Seite referenziert
|
|
wird.
|
|
|
|
## Nie wieder etwas verlieren
|
|
|
|
- **Versionsverlauf.** Jede Seite behält automatische Schnappschüsse und
|
|
zusätzlich benannte Versionen, die du selbst speicherst. Vergleiche,
|
|
sieh, wer beigetragen hat, und stelle jeden früheren Stand wieder her —
|
|
Wiederherstellungen erscheinen live in jedem offenen Editor.
|
|
- **Papierkorb mit Schonfrist.** Gelöschte Seiten liegen in einem
|
|
Papierkorb pro Teich und lassen sich wochenlang wiederherstellen,
|
|
bevor sie endgültig entfernt werden — einzeln oder als
|
|
Checkbox-Mehrfachauswahl mit Sammel-Wiederherstellen/-Löschen.
|
|
- **Echte Backups.** Nächtliche Datenbank- und Datei-Backups, optional
|
|
externe Kopien auf eine **Nextcloud** deiner Wahl und eine getestete
|
|
Ein-Klick-Wiederherstellung — inklusive dokumentiertem Weg, eine
|
|
Instanz aus dem Nichts wieder aufzubauen.
|
|
|
|
## Organisieren, wie du denkst
|
|
|
|
- **Seitenbaum**: Seiten unter Seiten verschachteln (bis zu 6 Ebenen) —
|
|
Slugs und Links bleiben flach, Verschieben bricht also nie etwas; der
|
|
ZIP-Export bleibt ebenfalls flach (die Hierarchie ist rein
|
|
organisatorisch).
|
|
- **Obsidian-Vault-Import**: Eine Teich-Administration lädt einen ganzen
|
|
Vault als ZIP hoch — Ordner werden zum Seitenbaum, Tags zu Labels,
|
|
`[[Wikilinks]]` werden so umgeschrieben, dass sie weiter funktionieren,
|
|
und Bilder kommen als Teich-Dateien mit
|
|
- **Tote Links sind einen Klick von einer Seite entfernt**: Wer einen Link
|
|
auf eine noch nicht existierende Seite öffnet, bekommt sie direkt zum
|
|
Anlegen angeboten
|
|
- **Wissensgraph**: eine interaktive Karte jedes Teichs — Seiten als
|
|
Knoten, Wikilinks als Kanten, fehlende Ziele als gestrichelte
|
|
Phantome, die ein Klick anlegt; jede Seite hat zusätzlich einen
|
|
lokalen Nachbarschafts-Graphen.
|
|
- **Labels**, auf Wunsch hierarchisch, um einen Teich beliebig zu
|
|
gliedern — und um Zugriffsregeln zu begrenzen (siehe unten).
|
|
- **Persönliche Favoriten**: Markiere jede Seite mit einem Stern —
|
|
goldene Icons zeigen deine Favoriten im Seitenbaum, ein Filter
|
|
verengt die Liste darauf. Sterne gelten pro Nutzer und sind für
|
|
andere unsichtbar.
|
|
- **Schnelle Volltextsuche** über alles, was du lesen darfst —
|
|
unempfindlich gegen Akzente und Umlaute, mit Teilwort-Treffern.
|
|
- **Inhaltsverzeichnis, Seitenindizes, Diagramme** und mehr über
|
|
mitgelieferte Plugins (siehe „Erweiterbar" unten).
|
|
|
|
## Teile genau so viel, wie du willst
|
|
|
|
- **Feingranulare Berechtigungen.** Vergib Lese- oder Schreibrechte pro
|
|
Teich, pro Label oder pro Seite — an einzelne Personen, an alle
|
|
angemeldeten Mitglieder oder ans öffentliche Internet. Deny-Regeln
|
|
schneiden Ausnahmen heraus. Ein eingebauter Inspektor („Effektive
|
|
Rechte") erklärt, _warum_ jemand eine Seite sehen kann oder nicht.
|
|
- **Öffentliche Seiten.** Veröffentliche ausgewählte Seiten schreibgeschützt
|
|
für die Welt, mit sauberen URLs — der Rest des Teichs bleibt privat.
|
|
- **Kommentare.** Diskutiere in Threads direkt neben dem Inhalt, erledige,
|
|
was geklärt ist, und entscheide pro Teich, ob alle Lesenden oder nur
|
|
Bearbeitende kommentieren dürfen.
|
|
- **Benachrichtigungen unter deiner Kontrolle.** Beobachte Seiten oder
|
|
ganze Teiche, nutze den In-App-Posteingang und wähle E-Mail-Digests
|
|
(stündlich, täglich oder aus) — mit funktionierendem Abmeldelink.
|
|
|
|
## Deine Dokumente kommen und gehen frei
|
|
|
|
- **Import** von Word- (`.docx`), LibreOffice- (`.odt`) und
|
|
Markdown-Dateien — eingebettete Bilder inklusive.
|
|
- **Export** jeder Seite als Markdown, Word, LibreOffice oder **PDF**
|
|
(mit der Typografie deines Teichs) und jedes Teichs als ZIP aus
|
|
Markdown-Dateien. Kein Lock-in, niemals.
|
|
|
|
## Maschinen sind auch willkommen — zu deinen Bedingungen
|
|
|
|
- **REST-API.** Eine saubere, token-authentifizierte öffentliche API zum
|
|
Lesen, Schreiben, Suchen, Labeln und Kommentieren — mit
|
|
OpenAPI-Beschreibung. Tokens tragen exakt die Berechtigungen ihrer
|
|
Besitzerin, nie mehr.
|
|
- **Eingebauter MCP-Endpoint.** Verbinde Claude Code oder einen anderen
|
|
MCP-fähigen KI-Assistenten direkt mit deinem Wiki — er kann suchen,
|
|
lesen und (wenn du es erlaubst) Seiten schreiben. Beide Schnittstellen
|
|
sind **standardmäßig aus**, und jeder Teich stimmt separat zu.
|
|
|
|
## Erweiterbar, aber sicher
|
|
|
|
- **Plugins** ergänzen Block-Typen (Mermaid-Diagramme, vollwertiges
|
|
**draw.io**-Bearbeiten), Seiten-Werkzeuge (Inhaltsverzeichnis,
|
|
Seitenindex) und Abschnitts-Stile. Jedes Plugin läuft in einer strikten
|
|
Sandbox: keine Cookies, kein Storage, kein Netzwerk — es kann nie mehr
|
|
lesen als die Person, die es gerade ansieht.
|
|
- Referenz-Plugins werden mitgeliefert und dienen zugleich als
|
|
dokumentierte Vorlagen für eigene Plugins.
|
|
|
|
## Privat by design
|
|
|
|
- **Selbst gehostet.** Ein `docker compose up`, ein freundlicher
|
|
Einrichtungsassistent beim ersten Start — und es gehört dir. Alles,
|
|
Schriften eingeschlossen, wird von deiner eigenen Domain ausgeliefert:
|
|
Seiten stellen **null Anfragen an Dritte**.
|
|
- **DSGVO-freundlich.** Impressums- und Datenschutzseiten sind eingebaut
|
|
(mit Vorlagen), persönliche Daten als ZIP exportierbar, Konto-Löschung
|
|
mit inhaltserhaltender Pseudonymisierung und ein Audit-Log der
|
|
administrativen Aktionen.
|
|
- **Zweisprachig.** Die gesamte Oberfläche spricht Deutsch und Englisch;
|
|
jede Person wählt ihre Sprache selbst.
|
|
|
|
## Ehrlicher Betrieb
|
|
|
|
- Health-Endpoints, die „down" von „degraded" unterscheiden, ein
|
|
Admin-System-Panel mit Job-Status, Backup-Zustand, Audit-Log und
|
|
Speicherübersicht, monatliche automatisierte Restore-Übungen — der
|
|
Betreiber kann _beweisen_, dass die Backups funktionieren, statt nur
|
|
zu hoffen.
|
|
|
|
---
|
|
|
|
_Dorfteich ist MIT-lizenzierte Open-Source-Software. Wer Docker
|
|
betreiben kann, kann Dorfteich betreiben — siehe
|
|
[Self-Hosting](../self-hosting/README.md) (englisch)._
|