dorfteich/README.md
Claude Fable 5 eeb0ef6794
All checks were successful
CD / Build and push images (push) Successful in 1m9s
CD / Deploy to Test (push) Successful in 10s
CD / Smoke tests against Test (push) Successful in 1m10s
CD / Promote to Int (push) Successful in 11s
CI / Lint, typecheck, test (push) Successful in 4m7s
CI / Build container images (push) Has been skipped
CI / Auth e2e pack (push) Successful in 5m34s
CI / Import/export fidelity gate (push) Successful in 47s
Documentation set: features, manuals (user/pond-admin/site-admin), API, MCP, developer guide
Seven audience-targeted documents (English first, German translation to
follow), linked from the README and a new docs/manual/ index:

- docs/features.md — public-facing feature overview: what Dorfteich
  can do and why that matters
- docs/manual/user-guide.md — everyday use: editor, wikilinks, labels,
  search, comments, watches/digests, import/export, settings
- docs/manual/pond-admin-guide.md — pond configuration: members/roles,
  access rules incl. label scoping and public pages, labels, comment
  policy, plugins, API/MCP opt-ins, files, export
- docs/manual/site-admin-guide.md — instance administration: wizard,
  settings, quotas, uploads, API/MCP switches, legal pages, plugins,
  users, and the system panel (jobs/backups/audit/storage)
- docs/manual/api-guide.md — example-driven public-API walkthrough
  (tokens, reading, writing through the collab-safe path, labels,
  comments, error semantics)
- docs/manual/mcp-guide.md — connecting AI assistants: switches, token
  scopes, Claude Code one-liner, mcp-remote bridge, tool table, audit
  and safety properties
- docs/developer/extending.md — plugin development (sandbox contract,
  SDK, block plugins, bundled apps/fullscreen, shipping) and core
  contributions (stack, dev environment, gates, house rules)

README: documentation index, repository-layout rows for docs/manual and
docs/developer, and the stale "architecture phase" status brought up to
reality. All relative links verified.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EwZ4jR4KFAPvpjWevfUGX1
2026-07-12 17:18:30 +02:00

85 lines
4.5 KiB
Markdown

# Dorfteich
Dorfteich is an open-source wiki system built around **ponds** (German:
_Teiche_) — self-contained wiki spaces that people and teams organize freely
with hierarchical labels, directories, and Obsidian-style page relations.
Pages are edited in a collaborative WYSIWYG editor with live cursors and
offline support.
- Project site: <https://dorfteich.cloud>
- Public flagship instance: <https://dorfteich.online>
- License: [MIT](LICENSE)
## Key features
- **Real-time collaboration** — multiple people edit the same page
simultaneously; everyone sees the other participants' cursors and input
live. Offline edits merge conflict-free on reconnect (CRDT-based).
- **Ponds** — isolated wiki spaces with their own members, permissions,
fonts, and page organization. Every registered person gets a personal pond.
- **Flexible organization** — hierarchical labels, free page ordering,
`[[wikilinks]]` with backlinks. A classic page tree is possible but never
enforced.
- **Fine-grained permissions** — roles (Site Admin, Pond Admin, Editor,
Reader, Public) can be granted per pond, per label, or per page; the most
specific setting wins.
- **Import & export** — Markdown as the primary exchange format, plus
best-effort structural import from Word/OpenOffice and export to
Word/OpenOffice/PDF.
- **Plugins** — sandboxed extensions (custom blocks, styles, page tools)
installable at runtime without redeploying the instance.
- **Self-hosting first** — a single `docker compose up` plus a guided
first-run setup wizard yields a working instance. Start here:
[`docs/self-hosting/README.md`](docs/self-hosting/README.md).
## Documentation
- **What is Dorfteich?** — [`docs/features.md`](docs/features.md)
- **Manuals** (user / pond admin / site admin / API / MCP) —
[`docs/manual/`](docs/manual/README.md)
- **Extending it** (plugins, core) —
[`docs/developer/extending.md`](docs/developer/extending.md)
- **Running it** — [`docs/self-hosting/`](docs/self-hosting/README.md)
- **How it works inside** — [`docs/architecture/`](docs/architecture/README.md)
## Repository layout
| Path | Contents |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `docs/manual/` | User-facing manuals: user, pond-admin, site-admin, API, and MCP guides (start at [`docs/manual/README.md`](docs/manual/README.md)) |
| `docs/developer/` | Extending Dorfteich: plugin development and core contributions |
| `docs/architecture/` | Architecture documentation: ADRs, data model, permission model, collaboration and plugin concepts, deployment and operations |
| `docs/self-hosting/` | Install, update, backup, and troubleshooting guide for running your own instance |
| `apps/` | Application packages (web frontend, API server, collaboration server) — created as implementation proceeds |
| `packages/` | Shared packages (types, permission logic, plugin SDK) |
| `deploy/` | Docker Compose stacks and deployment tooling |
## Development
Requirements: Node.js ≥ 22 and [pnpm](https://pnpm.io) (`npm install -g pnpm`).
```sh
pnpm install # install all workspace dependencies
pnpm lint # ESLint + Prettier check across the repo
pnpm typecheck # TypeScript --noEmit in every package
pnpm test # Vitest in every package
pnpm build # build every package (dependency order)
```
The workspace packages live under `apps/` (web, api, collab) and
`packages/` (shared). Shared logic goes into `packages/shared` and is
imported as `@dorfteich/shared` — never copy code between apps.
## Status
Feature-complete for a 1.0: collaboration, permissions, import/export,
plugins, public REST API + MCP, backups with off-host copies and in-app
restore — all shipped and release-gated. Work is tracked as issues in
this repository.
## Contributing
Code, comments, and documentation are written in English. Write clear code
that humans can follow easily; when in doubt, prefer readability over
cleverness. All contributions are accepted under the MIT license.