diff --git a/deploy/legal/dorfteich-online-datenschutz.md b/deploy/legal/dorfteich-online-datenschutz.md new file mode 100644 index 0000000..78521ce --- /dev/null +++ b/deploy/legal/dorfteich-online-datenschutz.md @@ -0,0 +1,101 @@ +Verantwortlicher für die Datenverarbeitung auf dorfteich.online ist +Stefan Waidele, Ensisheimer Straße 2, 79395 Neuenburg am Rhein, +E-Mail: stefan@waidele.info (siehe Impressum). Es werden nur +personenbezogene Daten verarbeitet, die für den Betrieb dieses Dienstes +erforderlich sind — es gibt keine Werbung, kein Tracking und keine +Weitergabe an Dritte zu kommerziellen Zwecken. + +## Hosting + +Diese Instanz läuft auf einem Server der Hetzner Online GmbH, +Industriestr. 25, 91710 Gunzenhausen (Serverstandort Deutschland). Mit +Hetzner besteht ein Vertrag zur Auftragsverarbeitung (Art. 28 DSGVO). +Die Verbindung ist durchgehend TLS-verschlüsselt. + +## Konten + +Bei der Registrierung speichere ich Benutzername, E-Mail-Adresse, einen +Passwort-Hash (nie das Passwort selbst), den Anzeigenamen und die +Spracheinstellung (Art. 6 Abs. 1 lit. b DSGVO). Die E-Mail-Adresse dient +der Bestätigung des Kontos, dem Zurücksetzen des Passworts und den unten +beschriebenen Benachrichtigungen. Benutzername und Anzeigename sind für +andere Mitglieder sichtbar, mit denen du Teiche teilst. + +## Sitzungen und Cookies + +Nach der Anmeldung hält ein technisch notwendiges Sitzungs-Cookie +(`dt_session`, Laufzeit 30 Tage) dich angemeldet. Zu jeder Sitzung +speichere ich die von deinem Browser übermittelte Kennung (User-Agent) +und den Ablaufzeitpunkt; unter „Einstellungen → Sitzungen" kannst du +jede Sitzung einsehen und beenden. Es gibt keine Tracking- und keine +Drittanbieter-Cookies — deshalb auch keinen Cookie-Banner. + +## Missbrauchsschutz und Server-Logs + +Zum Schutz vor Missbrauch (z. B. Anmeldeversuche) werden IP-Adressen in +kurzlebigen Zählern verarbeitet, die automatisch verfallen (Art. 6 +Abs. 1 lit. f DSGVO). Der vorgeschaltete Webserver schreibt Zugriffs-Logs +mit IP-Adressen; diese werden rotiert und spätestens nach 30 Tagen +gelöscht. + +## E-Mail + +Transaktions-E-Mails (Konto-Bestätigung, Passwort-Zurücksetzen) sowie — +sofern du Seiten oder Teiche beobachtest — Benachrichtigungs-Sammelmails +(„Digests") werden über den Mailserver des Betreibers versendet. Digests +kannst du in den Einstellungen abschalten; jede Digest-Mail enthält +zudem einen Abmeldelink, der ohne Anmeldung funktioniert. + +## Von dir erstellte Inhalte + +Von dir angelegte Seiten, Kommentare und hochgeladene Dateien liegen auf +dem Server und sind für die Personen sichtbar, die die Berechtigungen +der jeweiligen Teiche zulassen; ausdrücklich öffentlich geschaltete +Seiten sind ohne Anmeldung im Internet abrufbar. Inhalte sind nicht +Ende-zu-Ende-verschlüsselt — der Server verarbeitet sie im Klartext, um +Suche, Zusammenarbeit, Export und Darstellung bereitzustellen. Zu jeder +Seite wird eine Versionshistorie einschließlich der beteiligten +Autorinnen und Autoren geführt. Gelöschte Seiten bleiben 30 Tage im +Papierkorb wiederherstellbar, bevor sie endgültig entfernt werden. + +## API-Zugriff und KI-Assistenten + +Wenn du in den Einstellungen persönliche API-Tokens anlegst (etwa um +Skripte oder KI-Assistenten anzubinden), wird nur ein Hash des Tokens +gespeichert. Zugriffe über Tokens unterliegen exakt deinen +Berechtigungen; schreibende Zugriffe werden im Admin-Protokoll +festgehalten. + +## Backups + +Zur Ausfallsicherheit werden täglich Sicherungen der Datenbank und der +hochgeladenen Dateien erstellt und 30 Tage aufbewahrt. Eine Kopie der +Sicherungen wird über eine verschlüsselte Verbindung auf einen privaten +Server des Betreibers in Deutschland gespiegelt (gleiche +Aufbewahrungsdauer). Gelöschte Inhalte können daher in Sicherungen noch +bis zu 30 Tage nach der endgültigen Löschung enthalten sein. + +## Keine Anfragen an Dritte + +Dein Browser kommuniziert ausschließlich mit dieser Instanz: Schriften +sind selbst gehostet, es gibt keine CDNs, keine Analyse-Dienste und +keine eingebetteten Drittanbieter. + +## Deine Rechte + +Du kannst deine eigenen Daten (Profil und die dir gehörenden Teiche) +jederzeit unter „Einstellungen → Datenexport" als ZIP-Archiv exportieren +(Auskunft und Datenübertragbarkeit, Art. 15 und 20 DSGVO). Bei der +Löschung deines Kontos werden deine persönlichen Daten entfernt; deine +Autorenschaft an geteilten Inhalten wird durch „gelöschte +Nutzerin/gelöschter Nutzer" ersetzt (Pseudonymisierung). Darüber hinaus +hast du das Recht auf Berichtigung, Löschung und Einschränkung der +Verarbeitung sowie auf Widerspruch (Art. 16–18, 21 DSGVO). Wende dich +dazu an die im Impressum genannte E-Mail-Adresse. + +Beschwerden richtest du an die zuständige Aufsichtsbehörde: Der +Landesbeauftragte für den Datenschutz und die Informationsfreiheit +Baden-Württemberg (LfDI), Lautenschlagerstraße 20, 70173 Stuttgart, +. + +_Stand: 12. Juli 2026_ diff --git a/deploy/legal/dorfteich-online-impressum.md b/deploy/legal/dorfteich-online-impressum.md new file mode 100644 index 0000000..9e008bf --- /dev/null +++ b/deploy/legal/dorfteich-online-impressum.md @@ -0,0 +1,63 @@ +**Angaben gemäß § 5 DDG** + +Stefan Waidele +Ensisheimer Straße 2 +79395 Neuenburg am Rhein +Deutschland + +**Kontakt** + +E-Mail: stefan@waidele.info + +**Verantwortlich für eigene Inhalte gemäß § 18 Abs. 2 MStV** + +Stefan Waidele (Anschrift wie oben) + +## Verbraucherstreitbeilegung + +Ich bin nicht bereit und nicht verpflichtet, an Streitbeilegungsverfahren +vor einer Verbraucherschlichtungsstelle teilzunehmen (§ 36 VSBG). + +## Inhalte von Nutzerinnen und Nutzern + +dorfteich.online ist ein Wiki: Die Inhalte der einzelnen Teiche und +Seiten werden von den jeweiligen Nutzerinnen und Nutzern erstellt und +verantwortet. Als Betreiber mache ich mir diese Inhalte nicht zu eigen. +Hinweise auf rechtswidrige Inhalte nehme ich unter der oben genannten +E-Mail-Adresse entgegen und entferne betroffene Inhalte nach Prüfung +unverzüglich. + +## Haftung für Inhalte + +Für eigene Inhalte auf diesen Seiten bin ich nach den allgemeinen +Gesetzen verantwortlich. Ich bin jedoch nicht verpflichtet, übermittelte +oder gespeicherte fremde Informationen zu überwachen oder nach Umständen +zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. +Verpflichtungen zur Entfernung oder Sperrung der Nutzung von +Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt; +eine diesbezügliche Haftung ist erst ab dem Zeitpunkt der Kenntnis einer +konkreten Rechtsverletzung möglich. + +## Haftung für Links + +Von Nutzerinnen, Nutzern oder mir gesetzte Links führen zu Inhalten +Dritter, auf die ich keinen Einfluss habe. Für diese fremden Inhalte +übernehme ich keine Gewähr; verantwortlich ist stets der jeweilige +Anbieter. Zum Zeitpunkt der Verlinkung erkennbare Rechtsverstöße lagen +nicht vor. Bei Bekanntwerden von Rechtsverletzungen werden entsprechende +Links umgehend entfernt. + +## Urheberrecht + +Die durch den Betreiber erstellten Inhalte und Werke auf diesen Seiten +unterliegen dem deutschen Urheberrecht. Von Nutzerinnen und Nutzern +erstellte Inhalte verbleiben bei diesen; mit dem Einstellen räumen sie +dem Betreiber die für den Betrieb des Dienstes erforderlichen einfachen +Nutzungsrechte ein (Speicherung, Anzeige, Backups, Export). Die +Dorfteich-Software selbst ist Open Source (MIT-Lizenz). + +## Verfügbarkeit + +dorfteich.online ist ein kostenfreies Angebot. Ich bemühe mich um einen +zuverlässigen Betrieb und regelmäßige Datensicherungen, übernehme jedoch +keine Gewähr für die ununterbrochene Verfügbarkeit des Dienstes. diff --git a/docs/self-hosting/legal-template.md b/docs/self-hosting/legal-template.md index b703954..5e3030d 100644 --- a/docs/self-hosting/legal-template.md +++ b/docs/self-hosting/legal-template.md @@ -27,6 +27,10 @@ them changes, update the templates in the same change: | Reverse-proxy logs | IP address, requested URL | host level (Caddy/nginx), operator-managed rotation | | Transactional e-mail | recipient address, mail content | SMTP relay (wizard/secret store, #80); verification, password reset | | Content & uploads | pages, attachments authored by users | ponds/pages/files; server sees plaintext (no E2E, security.md §Out of scope) | +| Comments & versions | comment threads; per-page version history incl. contributor names | comments (#91), versions (ADR 0013) | +| Notifications & digests | in-app notifications; digest mails with unsubscribe token | notifications (#94), digests (#95) | +| API tokens | token hash, scope, last use; writes audit-logged | personal access tokens (#104), MCP (#105) | +| Off-host backup copies | full backup sets on an operator-chosen target | Nextcloud target (#103), private mirror (#84) | | Data export | self-service ZIP (profile + own ponds) | `POST /users/me/data-export` (#68) | | Deletion | trash/purge for content; pseudonymized authorship ("deleted user") | PseudonymizationService (#59), trash retention (ADR 0013) | | No third-party requests | fonts self-hosted, no CDNs, no analytics | ADR 0016, CSP in nginx.conf | @@ -112,10 +116,26 @@ message content are transmitted to that relay for delivery. Pages and uploaded files you create are stored on the server and are visible to the people your ponds' permissions allow. Content is not end-to-end encrypted — the server processes it in plaintext to provide -search, export, and rendering. Deleted pages remain restorable from the +search, export, and rendering. Every page keeps a version history +including the names of its contributors; comments are stored with their +author. Deleted pages remain restorable from the trash for [trash retention, default 30] days before they are permanently removed. +## Notifications and digest mails + +If you watch pages or ponds, notifications are collected in the app and +— depending on your settings — bundled into digest e-mails. Digests can +be disabled in the settings; every digest carries an unsubscribe link +that works without signing in. + +## API tokens + +If you create personal access tokens (for scripts or AI assistants), +only a hash of the token is stored. Token access is limited to your own +permissions; write operations are recorded in the administrative audit +log. + ## No third-party requests Your browser talks only to this instance: fonts are self-hosted, and @@ -135,7 +155,9 @@ exercise your rights, contact [address from the imprint]. ## Hosting and backups This instance is hosted at [provider, location]. Backups are kept for -[retention] and stored [location/provider]. +[retention] and stored [location/provider]. [If configured: a copy of +each backup set is transferred to [target, e.g. a Nextcloud / a private +server] and kept there for [retention].] ``` ## Privacy policy template (Deutsch) @@ -182,10 +204,27 @@ Von dir angelegte Seiten und hochgeladene Dateien liegen auf dem Server und sind für die Personen sichtbar, die die Berechtigungen deiner Teiche zulassen. Inhalte sind nicht Ende-zu-Ende-verschlüsselt — der Server verarbeitet sie im Klartext, um Suche, Export und Darstellung -bereitzustellen. Gelöschte Seiten bleiben [Aufbewahrung, Standard 30] +bereitzustellen. Zu jeder Seite wird eine Versionshistorie +einschließlich der beteiligten Autorinnen und Autoren geführt; +Kommentare werden mit ihrer Autorin/ihrem Autor gespeichert. Gelöschte +Seiten bleiben [Aufbewahrung, Standard 30] Tage im Papierkorb wiederherstellbar, bevor sie endgültig entfernt werden. +## Benachrichtigungen und Digest-Mails + +Wenn du Seiten oder Teiche beobachtest, werden Benachrichtigungen in der +App gesammelt und — je nach Einstellung — als Sammel-E-Mails („Digests") +zugestellt. Digests lassen sich in den Einstellungen abschalten; jede +Digest-Mail enthält einen ohne Anmeldung funktionierenden Abmeldelink. + +## API-Tokens + +Wenn du persönliche API-Tokens anlegst (für Skripte oder +KI-Assistenten), wird nur ein Hash des Tokens gespeichert. Zugriffe über +Tokens unterliegen deinen eigenen Berechtigungen; schreibende Zugriffe +werden im Admin-Protokoll festgehalten. + ## Keine Anfragen an Dritte Dein Browser kommuniziert ausschließlich mit dieser Instanz: Schriften @@ -207,5 +246,8 @@ Aufsichtsbehörde. Wende dich dazu an [Kontakt aus dem Impressum]. ## Hosting und Backups Diese Instanz wird gehostet bei [Anbieter, Standort]. Backups werden -[Aufbewahrung] aufbewahrt und liegen [Ort/Anbieter]. +[Aufbewahrung] aufbewahrt und liegen [Ort/Anbieter]. [Falls +konfiguriert: Eine Kopie der Sicherungen wird zu [Ziel, z. B. eine +Nextcloud / ein privater Server] übertragen und dort [Aufbewahrung] +aufbewahrt.] ```