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.
| Methode | Wofür tagwerk sie nutzt |
|---|---|
OPTIONS | Verbindungstest und Beginn eines Syncs. Die Antwort muss einen DAV-Header tragen. |
PROPFIND | Depth: 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. |
GET | Herunterladen einer Notiz, einer Vorlage, der Tag-Farben oder der Lizenz. |
PUT | Hochladen. Beantwortet mit 200, 201 oder 204. |
MKCOL | Anlegen des Notizordners und der Ordner darunter (Jahr, Monat, templates/, settings/). |
DELETE | Entfernen 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 mitIf-Matchund dem ETag, den tagwerk zuletzt gesehen hat. Hält der Server etwas anderes, muss er mit412 Precondition Failedantworten; 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, weilIf-Matchkeinen schwachen Tag treffen kann. EinPUT, dessen Antwort keinen ETag trägt, ist ebenfalls in Ordnung: tagwerk fragt ihn perPROPFINDnach. - 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://aufhttps://wird ohne sie verfolgt, und die App nennt dann die Adresse, auf die sie geschickt wurde. Vonhttps://aufhttp://wird gar nicht verfolgt. - Statuscodes, auf die tagwerk reagiert.
401ist eine abgelehnte Anmeldung,403bei einemPUTein schreibgeschützter Ordner,507ein volles Kontingent,412eine 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.
| Server | Eintragen | tagwerk nutzt |
|---|---|---|
| Nextcloud, ownCloud | https://cloud.example.org | https://cloud.example.org/remote.php/dav/files/USER/ |
| Nextcloud in einem Unterpfad | https://example.org/nextcloud | https://example.org/nextcloud/remote.php/dav/files/USER/ |
Eine Adresse mit remote.php oder /dav/ darin | die Adresse, wie sie ist | die Adresse, wie sie ist |
| Jeder andere WebDAV-Server | die vollständige WebDAV-Adresse des Kontos | die 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: infinityvon 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 Assistentenusers, dann dein Konto, und lege den Notizordner dort an oder wähle ihn. - HiDrive antwortet auf jeden Pfad, den es nicht gibt, mit
403statt404. tagwerk fragt dann den nächsten Kandidaten und versucht, einen fehlenden Ordner anzulegen, bevor es einem403glaubt. - 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 mit401abgewiesen, was genau wie ein falsches Passwort aussieht. Die App erkennt den Fall und nennt die richtige Adresse. - Trage
https://ein. Beihttp://leitet die Box aufhttps://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 einerOPTIONS-Antwort lässt unter UmständenPUTundMKCOLweg, obwohl beide funktionieren. tagwerk liest ihn nicht. Depth: infinitywird unter Umständen mit403abgelehnt; tagwerk listet dann Ordner für Ordner.- Das eigene WebDAV-Modul von nginx beantwortet weder
PROPFINDnochOPTIONS; es braucht zusätzlich das Moduldav-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.
| Stufe | Meldung | Übliche Ursache | Abhilfe |
|---|---|---|---|
| Netzwerk vorhanden | Dieses Gerät hat gerade keine Netzwerkverbindung. | Das Gerät ist offline. | WLAN oder mobile Daten prüfen. |
| Servername auflösbar | Die Server-Adresse ist keine gültige URL. | Ein Tippfehler in der Adresse. | So eintragen wie im Browser. |
| Servername auflösbar | Der 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üsselung | Der 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üsselung | Der 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üsselung | Dem Sicherheitszertifikat des Servers wird nicht vertraut. | Ein selbstsigniertes Zertifikat. | Ein Zertifikat einer öffentlichen Stelle, z. B. Let's Encrypt. |
| Verbindung und Verschlüsselung | Das 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üsselung | Das Sicherheitszertifikat des Servers ist abgelaufen. | Die Verlängerung ist nicht gelaufen. | Zertifikat erneuern. |
| Verbindung und Verschlüsselung | Die verschlüsselte Verbindung kam nicht zustande. | Nur veraltete TLS-Versionen, oder ein Proxy dazwischen. | TLS-Konfiguration des Servers prüfen. |
| Anmeldung akzeptiert | Der 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 akzeptiert | Der 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 akzeptiert | Angemeldet, aber der Zugriff auf diesen Bereich ist verboten. | Das Konto darf diesen Pfad nicht öffnen. | Rechte des Kontos oder die Adresse prüfen. |
| Anmeldung akzeptiert | Die 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, Schreibtest | Der Server meldet einen internen Fehler. | Ein Fehler auf dem Server. | Das Server-Log lesen. |
| WebDAV und Notizordner | Die Adresse antwortet, aber nicht als WebDAV-Server. | Die OPTIONS-Antwort hat keinen DAV-Header. | WebDAV für diesen Pfad einschalten. |
| WebDAV und Notizordner | Der 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 Notizordner | Angemeldet, 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. |
| Schreibtest | Lesen klappt, aber Schreiben ist nicht erlaubt. | PUT hat mit 403 geantwortet: schreibgeschützte Freigabe oder Ordner. | Schreibzugriff gewähren. |
| Schreibtest | Der 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.
Die WebDAV-Wurzel antwortet mit einem
DAV-Header:curl -i -u USER -X OPTIONS https://dav.example.org/remote.php/dav/files/USER/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/Eine Datei lässt sich schreiben und löschen; das
PUTantwortet 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.mdBedingtes Schreiben wird beachtet: Der zweite dieser beiden Aufrufe muss mit
412antworten.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.mdBei einem
401dieselbe Anfrage gegen die anderen Namen des Servers stellen und-vergänzen, um zu sehen, ob die Antwort vom gefragten Host kommt oder von einem, auf den er weitergeleitet hat.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 von | Name der Kopie |
|---|---|
| tagwerk | 2026-10-28.sync-conflict-tagwerk.md |
| Syncthing | 2026-10-28.sync-conflict-20261028-101010-ABCDEFG.md |
| Nextcloud-Client | 2026-10-28 (conflicted copy 2026-10-28 101010).md |
| Dropbox | 2026-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.