dorfteich/docs/manual/site-admin-guide.md
Claude Fable 5 baebd79cc8
All checks were successful
CD / Build and push images (push) Successful in 1m10s
CD / Deploy to Test (push) Successful in 10s
CD / Smoke tests against Test (push) Successful in 1m14s
CD / Promote to Int (push) Successful in 11s
CI / Lint, typecheck, test (push) Successful in 4m6s
CI / Build container images (push) Has been skipped
CI / Auth e2e pack (push) Successful in 5m35s
CI / Import/export fidelity gate (push) Successful in 48s
German translations of the seven user-facing docs under docs/de/
Mirrors the English tree (docs/de/{features.md,manual/*,developer/
extending.md}) so relative links between translated guides resolve
within the German set; links into untranslated areas (self-hosting,
architecture, deploy) point at the English files and say so. Every
quoted UI label matches the actual German interface strings. Each
pair of files cross-links the other language; English stays
authoritative when the two diverge.

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

5.6 KiB

Site-admin guide

Deutsche Fassung: docs/de/manual/site-admin-guide.md

How to administer a Dorfteich instance from the browser. Installation, updates, and host-level operations are covered by the self-hosting guide; this guide is about the two admin pages: Admin → Settings (/admin) and Admin → System (/admin/system).

A site admin sees and may do everything — use a normal account for daily work.

First contact: the setup wizard

A fresh instance greets you with a six-step wizard: language → the site-admin account → instance name and default language → SMTP relay (with a live test mail; skippable) → registration mode → done. Until it finishes, the instance answers everything with 503 setup_required. Unattended installs pre-seed the wizard via SETUP_ADMIN_* environment variables.

Admin → Settings

Instance

  • Name (shown in the top bar and mails) and default language (used for anonymous visitors and server-rendered pages).
  • Registration mode: open (anyone may sign up, with e-mail verification) or closed (only existing accounts sign in).

Quotas

Instance-wide defaults: editors/readers per pond, additional shared ponds per user (default 0 — raise it or grant per-user overrides to let people create shared ponds), storage per pond, maximum file size. The quota manager below sets per-user/per-pond overrides that win over the defaults.

Uploads

The allow-list of non-image file extensions users may attach, and the SVG policy (sanitize strips scripts from uploaded SVGs, reject refuses them).

Public API and MCP

Two independent master switches, both off by default:

  • Public REST API: lets users mint personal access tokens and use /api/public/v1 (see the API guide).
  • Built-in MCP endpoint: exposes /api/mcp for AI assistants (MCP guide).

Either switch alone does nothing per pond — each pond additionally opts in via its pond settings. Off means the endpoints answer 404.

Imprint and privacy policy as Markdown, published at /legal/imprint and /legal/privacy and linked from every page footer. A template with a review checklist ships in docs/self-hosting/legal-template.md. Until configured, the pages show a notice (and you a warning banner).

Backups

See Admin → System → Backups below.

Plugins

Install plugins by uploading a ZIP (alternatively: drop the ZIP into the _dropzone/ folder on the plugins volume — a watcher installs it within seconds and moves rejected packages to _quarantine/ with the reason).

Each installed plugin has an instance mode:

Mode Meaning
disabled inactive everywhere (the default after install)
optional pond admins decide per pond
required active in every pond, no opt-out

Every plugin has a sandboxed preview page for trying it before enabling. Uninstalling is blocked while a plugin is required; documents keep their plugin blocks either way and show the plugin's fallback text when it is missing.

Shipped reference plugins: toc (table of contents), page-index (label-filtered page list), mermaid (diagram blocks), drawio (full draw.io editing), section-styles-basic (colored callouts).

Users

The user manager: search accounts, disable/enable, resend verification mails, promote/demote site admins, and delete accounts. Deletion offers pseudonymization: the account and its personal data disappear, but shared content survives attributed to a neutral placeholder. Guards prevent disabling yourself or removing the last site admin.

Admin → System

The operator's single glance:

  • Jobs: every maintenance job (trash purge, version thinning, page compaction, data-export purge, notification digests) with cadence, last run, duration and outcome — plus a manual Run button (itself audit-logged).
  • Backups: the status card mirrors the sidecar's last run and its freshness verdict, with a Back up now button. Below it:
    • Backup settings: local retention (overrides the container default), and the Nextcloud target — server address, username, app password (kept in the file-based secret store on the secrets volume, never in the database), folder, upload schedule (after every backup / weekly / manual), remote retention, and a Test connection button that verifies credentials and creates the folder.
    • Restore: lists local and Nextcloud sets; restoring asks you to re-type the backup id, then the instance enters maintenance mode, restores itself, and restarts. Everything else about backups (mirror to a private host, disaster recovery) lives in the self-hosting guide and the restore runbook.
  • Audit log: administrative and auth events (grants, members, user admin, quotas, plugins, settings, setup, tokens, API writes, backup actions) with actor/action/time filters, 50 per page.
  • Storage: the twenty largest ponds and the instance total.

Health, monitoring, go-live

  • GET /api/v1/readyz is the instance's own diagnosis; monitor it (down vs. degraded semantics and a ready-made monitor set: deploy/monitoring.md).
  • Going live checklist for a fresh production instance: deploy/go-live.md.