Alle Kapitel ↓

Handbuch · Sync und Server

Sync-Server

Was der eingebaute Sync von tagwerk von einem WebDAV-Server braucht, welche Adresse für welche Art Server einzutragen ist und wie du herausfindest, warum eine Verbindung scheitert.

Was tagwerk von einem Server braucht

Der eingebaute Sync spricht gewöhnliches WebDAV. Er braucht auf dem Server keine App, kein Plug-in und kein Konto außer einem Benutzer, der einen Ordner lesen und beschreiben darf. Dieses Kapitel ist für die Person, die den Server betreibt; wie der Sync in der App eingerichtet wird, steht unter Sync.

MethodeWofür tagwerk sie nutzt
OPTIONSVerbindungstest und Beginn eines Syncs. Die Antwort muss einen DAV-Header tragen.
PROPFINDDepth: 0, um die WebDAV-Adresse zu finden und den Notizordner zu prüfen; Depth: 1, um Ordner aufzulisten. Depth: infinity wird einmal für den ganzen Baum versucht; eine Ablehnung wird gemerkt und nach zwei Wochen erneut gefragt.
GETHerunterladen einer Notiz, einer Vorlage, der Tag-Farben oder der Lizenz.
PUTHochladen. Beantwortet mit 200, 201 oder 204.
MKCOLAnlegen des Notizordners und der Ordner darunter (Jahr, Monat, templates/, settings/).
DELETEEntfernen der Datei des Verbindungstests, einer in der App entfernten Vorlage und der Tag-Farben-Datei, sobald alle Farben entfernt sind. Eine Tagesnotiz wird nie gelöscht.

Über die Methoden hinaus:

  • Bedingtes Schreiben. Eine neue Datei geht mit If-None-Match: * hinaus, eine geänderte mit If-Match und dem ETag, den tagwerk zuletzt gesehen hat. Hält der Server etwas anderes, muss er mit 412 Precondition Failed antworten; tagwerk vergleicht dann mit dem, was wirklich dort liegt, statt es zu überschreiben. Ein schwacher ETag (W/"...") wird zum Vergleichen angenommen; ein Schreiben auf seiner Grundlage geht ohne Bedingung hinaus, weil If-Match keinen schwachen Tag treffen kann. Ein PUT, dessen Antwort keinen ETag trägt, ist ebenfalls in Ordnung: tagwerk fragt ihn per PROPFIND nach.
  • Basic-Authentifizierung bei jeder Anfrage, die Zugangsdaten als UTF-8 kodiert. Keine Cookies und keine Sitzung: Jede Anfrage trägt ihre eigenen Zugangsdaten, die Sitzung eines Kontos kann also nie für ein anderes einspringen. Server, die nur andere Verfahren annehmen (NTLM, OAuth- oder OpenID-Connect-Tokens), lassen sich nicht verwenden.
  • HTTPS. http:// funktioniert und wird mit einer Warnung quittiert, weil Basic-Authentifizierung das Passwort für jeden auf dem Weg lesbar verschickt. Zertifikate müssen für den Namen in der Adresse gelten; ein selbstsigniertes kann tagwerk nicht annehmen.
  • Weiterleitungen. Eine Weiterleitung bei gleichem Schema, Host und Port wird mit den Zugangsdaten verfolgt. Eine auf einen anderen Host oder von http:// auf https:// wird ohne sie verfolgt, und die App nennt dann die Adresse, auf die sie geschickt wurde. Von https:// auf http:// wird gar nicht verfolgt.
  • Statuscodes, auf die tagwerk reagiert. 401 ist eine abgelehnte Anmeldung, 403 bei einem PUT ein schreibgeschützter Ordner, 507 ein volles Kontingent, 412 eine zwischenzeitlich geänderte Fassung. 5xx, Zeitüberschreitungen und abgebrochene Verbindungen werden dreimal wiederholt, bevor sie gemeldet werden.

tagwerk nutzt die Proxy-Einstellungen des Systems. HTTP/2 kommt zum Einsatz, wo der Server es anbietet, sonst HTTP/1.1.

Welche Adresse einzutragen ist

Der Assistent braucht die Adresse der WebDAV-Wurzel des Kontos. Bei Nextcloud und ownCloud findet er sie selbst; bei jedem anderen Server trägst du sie vollständig ein.

ServerEintragentagwerk nutzt
Nextcloud, ownCloudhttps://cloud.example.orghttps://cloud.example.org/remote.php/dav/files/USER/
Nextcloud in einem Unterpfadhttps://example.org/nextcloudhttps://example.org/nextcloud/remote.php/dav/files/USER/
Eine Adresse mit remote.php oder /dav/ darindie Adresse, wie sie istdie Adresse, wie sie ist
Jeder andere WebDAV-Serverdie vollständige WebDAV-Adresse des Kontosdie Adresse, wie sie ist

Eine Adresse ohne Schema bekommt https://. Nennt die Adresse noch keinen WebDAV-Pfad, fragt tagwerk drei Kandidaten mit PROPFIND und Depth: 0: zuerst den abgeleiteten Nextcloud-Pfad remote.php/dav/files/USER/, dann remote.php/webdav/ - dieselben Dateien für den, der sich angemeldet hat, und das, was eine Nextcloud beantwortet, wenn der Anmeldename eine E-Mail-Adresse statt der Benutzer-ID ist -, dann die Adresse, wie sie eingetragen ist. Genommen wird der erste, der mit 207 Multi-Status antwortet - jede andere Antwort, auch 200 und 405, zählt nicht. Antwortet keiner mit 207, wird die stärkste Ablehnung gemeldet: ein abgelehntes Passwort vor einem verbotenen Pfad vor einem Serverfehler.

Der Ordner auf dem Server

In Schritt 2 des Assistenten wird ein Ordner unter der WebDAV-Wurzel gewählt oder angelegt. Darunter schreibt der Sync:

Tagwerk/
  2026/
    10/
      2026-10-28.md
  templates/
    template.md
    template-monday.md
  settings/
    tagwerk.colors
    tagwerk.license

Tagwerk/ steht für den gewählten Ordner. Tagesnotizen werden nach Jahr und Monat abgelegt, gleich, wie der Notizordner auf dem Gerät aufgebaut ist. Der Verbindungstest schreibt .tagwerk-connection-test.txt in den Ordner und löscht die Datei wieder. Jede andere Datei im Ordner bleibt unberührt; Konfliktkopien bleiben auf dem Gerät, das sie angelegt hat, und werden nie hochgeladen.

Eine Tagesnotiz wird nur ersetzt, nie gelöscht. Was der Sync überträgt und nach welcher Regel, steht unter Sync.

Hinweise zu einzelnen Servern

Die meisten WebDAV-Server brauchen nicht mehr als eine Adresse, einen Namen und ein Passwort. Die Hinweise hier sind die Stellen, an denen sich ein Server anders verhält, als seine Adresse vermuten lässt - gelernt an echten Konten, mit Datum, wo es darauf ankommt. Ein Server, der hier nicht steht, ist kein Server, der nicht funktioniert.

Nextcloud

  • Trage die normale Server-Adresse ein; der WebDAV-Pfad wird abgeleitet.
  • Die Browser-Anmeldung (Im Browser anmelden (Nextcloud)) nutzt den Login Flow v2 von Nextcloud: Der Server stellt tagwerk ein App-Passwort aus, das unter Einstellungen → Sicherheit → Geräte & Sitzungen erscheint und sich dort widerrufen lässt. Geprüft an einer echten Nextcloud im September 2026.
  • Mit Zwei-Faktor-Anmeldung am Konto scheitert das Konto-Passwort bei Anmeldung akzeptiert. Nimm die Browser-Anmeldung oder ein App-Passwort.
  • Nextcloud lehnt Depth: infinity von Haus aus ab. tagwerk listet die Ordner dann einzeln: eine Anfrage für den Ordner, eine je Jahr, eine je Monat.
  • Auf manchen Installationen ist Schreiben um ein Vielfaches langsamer als Lesen. Servertempo in der App zeigt Lesen und Schreiben getrennt, mit einem Text für den Hoster.
  • Ein App-Passwort ohne Zugriff auf das Dateisystem oder eine Regel der App "Dateizugriffskontrolle" lässt die Anmeldung durch und hält sie von jedem Ordner fern. Die App sagt Die Anmeldung klappt, aber der Server lässt sie nicht an die Dateien.
  • Nach mehreren falschen Passwörtern verzögert der Brute-Force-Schutz von Nextcloud seine Antworten und antwortet unter Umständen mit 423. Warte, bevor du es erneut versuchst.
  • Ein geteilter Ordner erscheint erst, wenn das Konto die Freigabe angenommen hat, und zwar in dem Ordner, in den das Konto empfangene Freigaben legt.

ownCloud

  • ownCloud Server nimmt dieselbe Adresse wie Nextcloud; der Pfad wird genauso abgeleitet.
  • Die Browser-Anmeldung ist die von Nextcloud. Bei ownCloud trägst du das Konto-Passwort oder ein App-Passwort ein.
  • ownCloud Infinite Scale und OpenCloud melden über OpenID Connect an und liefern WebDAV unter anderen Pfaden. tagwerk meldet sich nur per Basic-Authentifizierung an und ist gegen beide nicht geprüft.

Synology

  • Installiere in DSM das Paket WebDAV Server und schalte dort HTTPS ein; sein HTTPS-Port ist standardmäßig 5006 (5005 für HTTP).
  • Trage die Adresse mit Port ein, zum Beispiel https://nas.example.org:5006.
  • Ein NAS startet meist mit einem selbstsignierten Zertifikat, das tagwerk nicht annimmt: Der Test hält bei Verbindung und Verschlüsselung an. Gib dem NAS ein Zertifikat einer öffentlichen Stelle, zum Beispiel Let's Encrypt in DSM, und nimm genau den Namen, auf den es ausgestellt ist - nicht die IP-Adresse.
  • Gegen eine echte DiskStation noch nicht geprüft.

HiDrive

  • Trage die WebDAV-Adresse ein, die dein Anbieter auf seinen Hilfeseiten nennt.
  • Die oberste Ebene ist schreibgeschützt: Ordner oder Dateien dort anzulegen beantwortet sie mit 403. Dein eigener Ordner ist /users/USER/; öffne in Schritt 2 des Assistenten users, dann dein Konto, und lege den Notizordner dort an oder wähle ihn.
  • HiDrive antwortet auf jeden Pfad, den es nicht gibt, mit 403 statt 404. tagwerk fragt dann den nächsten Kandidaten und versucht, einen fehlenden Ordner anzulegen, bevor es einem 403 glaubt.
  • WebDAV gehört nicht zu jedem Tarif. Bei IONOS ist es in den Grundtarifen enthalten, bei STRATO bekommen die Privattarife es nur mit dem Protokoll-Paket. Ohne scheitert der Test, obwohl Adresse und Passwort stimmen. Geprüft mit einem IONOS-Konto im August 2026.

Hetzner Storage Box

  • Jedes Unterkonto hat einen eigenen Host: https://u123456-sub1.your-storagebox.de, nicht den der Box, https://u123456.your-storagebox.de. Unter dem Namen der Box wird ein Unterkonto mit 401 abgewiesen, was genau wie ein falsches Passwort aussieht. Die App erkennt den Fall und nennt die richtige Adresse.
  • Trage https:// ein. Bei http:// leitet die Box auf https:// weiter, die Zugangsdaten gehen dabei verloren, und die App meldet die Weiterleitung.
  • Die Box ist Apache mit mod_dav, es gilt also alles aus dem nächsten Abschnitt. Geprüft im August und September 2026, auch mit zwei Geräten an einem Ordner.

Apache mit mod_dav, und nginx

  • Apache markiert den ETag einer Datei in der Sekunde, in der sie geschrieben wurde, als schwach (W/"...") und danach als stark. tagwerk vergleicht beide Schreibweisen als eine Fassung, eine gerade hochgeladene Notiz wird also nicht wieder heruntergeladen.
  • Der Allow-Header einer OPTIONS-Antwort lässt unter Umständen PUT und MKCOL weg, obwohl beide funktionieren. tagwerk liest ihn nicht.
  • Depth: infinity wird unter Umständen mit 403 abgelehnt; tagwerk listet dann Ordner für Ordner.
  • Das eigene WebDAV-Modul von nginx beantwortet weder PROPFIND noch OPTIONS; es braucht zusätzlich das Modul dav-ext. Noch nicht geprüft.

Andere Server

Noch nicht geprüft und als Nächstes an der Reihe: magentaCLOUD (auf Nextcloud-Basis, mit App-Passwort), Infomaniak kDrive und Koofr. Jeder Server, der WebDAV mit Basic-Authentifizierung über HTTPS spricht, sollte funktionieren; die Checkliste unten sagt dir in wenigen Minuten, ob er es tut.

Fehlersuche

Der Verbindungstest (Verbindung testen und jeder Schritt des Assistenten) hält bei der ersten Stufe an, die scheitert, und zeigt ihre Meldung. Hinter einem System-Proxy gelten die Stufen Servername auflösbar und Verbindung und Verschlüsselung ohne Prüfung als bestanden, weil der Proxy die Verbindung herstellt; Probleme dort zeigen sich bei Anmeldung akzeptiert.

StufeMeldungÜbliche UrsacheAbhilfe
Netzwerk vorhandenDieses Gerät hat gerade keine Netzwerkverbindung.Das Gerät ist offline.WLAN oder mobile Daten prüfen.
Servername auflösbarDie Server-Adresse ist keine gültige URL.Ein Tippfehler in der Adresse.So eintragen wie im Browser.
Servername auflösbarDer Servername konnte nicht gefunden werden.Ein Tippfehler, ein veralteter DynDNS-Name oder ein Name, den es nur im Heimnetz gibt.Namen korrigieren; einen nehmen, der überall auflösbar ist.
Verbindung und VerschlüsselungDer Servername ist auflösbar, aber der Server antwortet nicht.Server offline, Firewall, fehlende Portweiterleitung, falscher Port.Port in der Adresse und die Weiterleitung im Router prüfen.
Verbindung und VerschlüsselungDer Server braucht zu lange für eine Antwort.Eine schwache Verbindung, ein VPN oder Proxy, ein überlasteter Server.Erneut versuchen; Servertempo ansehen.
Verbindung und VerschlüsselungDem Sicherheitszertifikat des Servers wird nicht vertraut.Ein selbstsigniertes Zertifikat.Ein Zertifikat einer öffentlichen Stelle, z. B. Let's Encrypt.
Verbindung und VerschlüsselungDas Zertifikat gehört zu einem anderen Servernamen.Eine IP-Adresse oder ein anderer Name als der des Zertifikats.Genau den Namen auf dem Zertifikat verwenden.
Verbindung und VerschlüsselungDas Sicherheitszertifikat des Servers ist abgelaufen.Die Verlängerung ist nicht gelaufen.Zertifikat erneuern.
Verbindung und VerschlüsselungDie verschlüsselte Verbindung kam nicht zustande.Nur veraltete TLS-Versionen, oder ein Proxy dazwischen.TLS-Konfiguration des Servers prüfen.
Anmeldung akzeptiertDer Server antwortet, lehnt aber die Anmeldung ab.Falsches Passwort, Zwei-Faktor-Anmeldung ohne App-Passwort oder der falsche Host für ein Unterkonto.Name und Passwort prüfen; ein App-Passwort nehmen; den Host prüfen.
Anmeldung akzeptiertDer Server hat die Anfrage weitergeleitet, und dort wurde sie abgelehnt.http://, wo der Server https:// will, oder eine nackte Domain, die auf www. weiterleitet.Die Adresse eintragen, die die Meldung zeigt.
Anmeldung akzeptiertAngemeldet, aber der Zugriff auf diesen Bereich ist verboten.Das Konto darf diesen Pfad nicht öffnen.Rechte des Kontos oder die Adresse prüfen.
Anmeldung akzeptiertDie Adresse antwortet, aber nicht als WebDAV-Server.Kein Kandidat hat mit 207 geantwortet: eine Webseite, eine Router-Anmeldung, der falsche Pfad.Die vollständige WebDAV-Adresse eintragen.
Anmeldung akzeptiert, SchreibtestDer Server meldet einen internen Fehler.Ein Fehler auf dem Server.Das Server-Log lesen.
WebDAV und NotizordnerDie Adresse antwortet, aber nicht als WebDAV-Server.Die OPTIONS-Antwort hat keinen DAV-Header.WebDAV für diesen Pfad einschalten.
WebDAV und NotizordnerDer Notizordner existiert nicht und ließ sich nicht anlegen.MKCOL wurde abgelehnt.Den Ordner in der Weboberfläche anlegen oder einen wählen, in den das Konto schreiben darf.
WebDAV und NotizordnerAngemeldet, aber der Zugriff auf diesen Bereich ist verboten.Der Ordner hat mit 403 geantwortet und auch MKCOL abgelehnt.Zugriff gewähren oder einen anderen Ordner wählen.
SchreibtestLesen klappt, aber Schreiben ist nicht erlaubt.PUT hat mit 403 geantwortet: schreibgeschützte Freigabe oder Ordner.Schreibzugriff gewähren.
SchreibtestDer Speicherplatz auf dem Server ist voll.PUT hat mit 507 geantwortet.Platz schaffen oder das Kontingent erhöhen.

Ein 401 am falschen Host lässt sich an der Antwort allein nicht von einem falschen Passwort unterscheiden. Bevor du das Passwort ein drittes Mal prüfst, prüfe die Adresse - vor allem den Host.

Eine Checkliste für die Administration

Die Anfragen der App lassen sich mit curl nachstellen, das nach dem Passwort fragt. Ersetze die Adresse durch die WebDAV-Wurzel und USER durch das Konto.

  1. Die WebDAV-Wurzel antwortet mit einem DAV-Header:

    curl -i -u USER -X OPTIONS https://dav.example.org/remote.php/dav/files/USER/
  2. Wurzel und Notizordner listen sich mit 207 Multi-Status:

    curl -i -u USER -X PROPFIND -H "Depth: 0" https://dav.example.org/remote.php/dav/files/USER/Tagwerk/
  3. Eine Datei lässt sich schreiben und löschen; das PUT antwortet mit 200, 201 oder 204:

    curl -i -u USER -T test.md https://dav.example.org/remote.php/dav/files/USER/Tagwerk/test.md
    curl -i -u USER -X DELETE https://dav.example.org/remote.php/dav/files/USER/Tagwerk/test.md
  4. Bedingtes Schreiben wird beachtet: Der zweite dieser beiden Aufrufe muss mit 412 antworten.

    curl -i -u USER -T test.md -H "If-None-Match: *" https://dav.example.org/remote.php/dav/files/USER/Tagwerk/test.md
    curl -i -u USER -T test.md -H "If-None-Match: *" https://dav.example.org/remote.php/dav/files/USER/Tagwerk/test.md
  5. Bei einem 401 dieselbe Anfrage gegen die anderen Namen des Servers stellen und -v ergänzen, um zu sehen, ob die Antwort vom gefragten Host kommt oder von einem, auf den er weitergeleitet hat.

  6. Die Testdateien danach löschen.

Wiederhole eine gescheiterte Anmeldung nicht in schneller Folge: Nextcloud und Storage Boxes zählen Fehlversuche und bremsen oder sperren das Konto. In der App liefert Einstellungen → Hilfe → Servertempo die Zeiten jeder Art von Anfrage als Text für eine Support-Anfrage.

Die Alternative: ein eigener Ordner

Ohne den eingebauten Sync braucht der Server nichts von tagwerk. Die Notizen liegen in einem Ordner auf dem Gerät (Einstellungen → Ablage → Ordner wählen...), und ein Programm deiner Wahl trägt diesen Ordner: Syncthing oder ein Client, der einen lokalen Ordner in beide Richtungen mit einem Server abgleicht. tagwerk liest die Dateien, die dieses Programm schreibt; schreibt es den Tag, in dem du gerade tippst, bleibt dessen Fassung als Konfliktkopie daneben liegen.

Konflikte folgen den Regeln dieses Programms. tagwerk erkennt die Kopien, die diese Programme schreiben, und listet sie neben den eigenen unter Tage, die es doppelt gibt:

Geschrieben vonName der Kopie
tagwerk2026-10-28.sync-conflict-tagwerk.md
Syncthing2026-10-28.sync-conflict-20261028-101010-ABCDEFG.md
Nextcloud-Client2026-10-28 (conflicted copy 2026-10-28 101010).md
Dropbox2026-10-28 (Tom's conflicted copy 2026-10-28).md

Kopien von Vorlagen werden genauso erkannt, zum Beispiel template-monday.sync-conflict-20261028-101010-ABCDEFG.md. Wie du einen Konflikt klärst, steht unter Sync.

Zuletzt geprüft 2026-10-29 · Diese Seite als Markdown