Kostenloser selbstgehosteter Obsidian-Sync-Server und Web-App

InventTasks bleibt auch bei aktivierter Synchronisierung local-first: Die Geräte speichern gewöhnliche Dateien und funktionieren offline, während Ihr selbstgehosteter Server Änderungen überträgt, einen begrenzten Versionsverlauf führt, Backups bereitstellt und die Web-App hostet. Der Server ist für die Geräte einer Person oder für mehrere voneinander getrennte Benutzerkonten vorgesehen, nicht für die gleichzeitige Teambearbeitung derselben Aufgabe.

Server bereitstellen#

Laden Sie das einsatzbereite Serverpaket von https://inventtasks.solidinvent.pl/download/inventtasks-server.zip herunter. Es enthält Docker Compose, eine Caddy-Konfiguration, Wartungsskripte und eine ausführliche Bereitstellungsanleitung. Das Paket bezieht das veröffentlichte Multi-Architektur-Image ghcr.io/solidinvent-dev/inventtasks-server:latest; verwenden Sie einen festen Release-Tag, wenn Sie planbare Upgrades wünschen. Der Container lauscht auf Port 8480 und speichert die SQLite-Daten sowie Datei-Blobs unter /data.

  1. Erstellen Sie ein persistentes Volume für /data.
  2. Legen Sie beim ersten Start ADMIN_USER und ein mindestens acht Zeichen langes ADMIN_PASSWORD fest. Diese Werte erstellen das erste Konto ausschließlich dann, wenn die Datenbank noch keine Konten enthält.
  3. Schalten Sie Caddy, Traefik, Nginx oder einen anderen Reverse Proxy vor den Container. Verwenden Sie HTTPS immer dann, wenn der Datenverkehr den lokalen Rechner oder ein vertrauenswürdiges privates Netzwerk verlässt; Workspace-Tokens sind Bearer-Zugangsdaten.
  4. Öffnen Sie die Serveradresse, melden Sie sich an und erstellen Sie ein Objekt vom Typ Task manager oder Vault. Das zugehörige Sync-Token wird nur einmal angezeigt; speichern Sie es in einem Passwortmanager. Bei einer Rotation wird das vorherige Token ungültig.

Die Notfalloption ADMIN_RESET=1 setzt beim nächsten Start das Passwort von ADMIN_USER auf den Wert von ADMIN_PASSWORD zurück. Entfernen Sie die Option unmittelbar danach und starten Sie den Server erneut. Setzen Sie ENABLE_VAULT_SYNC=0, wenn das Erstellen neuer Vault-Objekte deaktiviert werden soll. Nützliche Kapazitätseinstellungen sind MAX_FILE_MB (standardmäßig 50 MB) und MAX_WORKSPACE_MB (standardmäßig unbegrenzt).

Über das Dashboard können Sie eine ZIP-Datei mit den aktuellen Dateien oder dem vollständigen Verlauf exportieren, ZIP-Dateien im Merge- oder Replace-Modus importieren, gelöschte Dateien wiederherstellen sowie Backups manuell oder nach Zeitplan ausführen. Geplante Backups können täglich zu einer festen Uhrzeit oder alle N Stunden laufen und eine gewählte Anzahl von Kopien unter BACKUP_DIR aufbewahren. Das Bereitstellungspaket enthält außerdem ein Werkzeug für lesbare Exporte. Es wandelt /data oder ein Server-Backup in einen gewöhnlichen Obsidian-Vault um — optional mit Verlauf, ausschließlich mit Inhalten, mit relativen Links, Fälligkeitszeit in Dateinamen sowie englischen oder polnischen Überschriften.

Verwenden Sie für ein zuverlässiges Infrastruktur-Backup diese Export- und Backupfunktionen oder erstellen Sie bei angehaltenem Dienst einen konsistenten Snapshot von /data. Verlassen Sie sich nicht darauf, das Verzeichnis einer laufenden SQLite-Datenbank ohne Snapshot-Konsistenz zu kopieren. Prüfen Sie nach der Bereitstellung und nach Upgrades den Endpunkt /healthz.

Einen InventTasks-Workspace synchronisieren#

Erstellen Sie auf dem Server ein Objekt vom Typ Task manager und öffnen Sie anschließend für den lokalen Workspace Settings → InventTasks → File sync (self-hosted):

Feld Bedeutung
Enable sync Startet den Hintergrundabgleich für Dateien unterhalb des Stammordners dieses InventTasks-Workspace
Server URL Zum Beispiel https://sync.example.com
API token Das einmalig angezeigte Sync-Token aus dem Server-Dashboard; es ist kein Schlüssel für die External API
Server workspace ID Die ID des Task-manager-Objekts; verwenden Sie auf allen Geräten, die es gemeinsam nutzen, dieselbe ID
Full check interval Regelmäßiger vollständiger Scan im Abstand von 1–120 Minuten; lokale Änderungen werden früher in die Warteschlange gestellt
Live updates Hält eine WebSocket-Verbindung offen, damit Änderungen anderer Geräte zeitnah erkannt werden
Keep conflict copies Schreibt nach einem Konflikt zusätzlich die unterlegene lokale Version neben die Datei

Verwenden Sie Test connection und anschließend Sync now. Beim ersten Verbinden zweier nicht leerer Seiten fragt InventTasks, ob die Daten zusammengeführt, der Server überschrieben, die lokalen Dateien überschrieben oder der Vorgang abgebrochen werden soll. Merge ist in der Regel die sicherste Wahl. Ein neues, leeres Serverobjekt nimmt den ersten lokalen Upload ohne Rückfrage an.

Wenn zwei Geräte dieselbe Datei ändern, gewinnt die Version mit der neueren Änderungszeit. Der unterlegene Inhalt wird im Versionsverlauf des Servers abgelegt. Der Verlauf ist begrenzt: Standardmäßig werden Versionen 30 Tage lang und höchstens 20 Versionen je Pfad aufbewahrt; der Serverbetreiber kann diese Werte ändern. Ein Schutz vor Massenlöschungen hält einen verdächtigen Abruf an und bietet an, Serverdateien wiederherzustellen, die Löschung lokal zu akzeptieren oder später zu entscheiden. Optionale Konfliktkopien sind ein weiteres lokales Sicherheitsnetz, ersetzen jedoch keine Backups.

Frühere Versionen können Sie unter Settings → File sync → Version history oder über den Wiederherstellungsbefehl in der Befehlspalette durchsuchen und wiederherstellen. Beim Wiederherstellen wird der verdrängte aktuelle Inhalt zuerst im Verlauf gesichert, sofern die Aufbewahrungseinstellungen dies zulassen.

Kostenlose selbstgehostete Synchronisierung des gesamten Obsidian-Vaults#

Vault sync ist vom Aufgaben-Workspace unabhängig und kann selbst dann verwendet werden, wenn kein InventTasks-Workspace eingerichtet ist. Damit erhalten Sie eine kostenlose, selbstgehostete Alternative zu Obsidian Sync für den restlichen Vault: Notizen, Anhänge, Bilder und andere Dateien. Die Stammordner der InventTasks-Workspaces, .git, Papierkorb und Laufzeitstatus von InventTasks sind ausgeschlossen, damit Aufgabendateien nicht doppelt übertragen werden.

  1. Erstellen Sie auf dem Server ein Objekt vom Typ Vault und kopieren Sie sein einmalig angezeigtes Token.
  2. Öffnen Sie auf jedem teilnehmenden Gerät Settings → InventTasks → Vault sync (self-hosted) und tragen Sie Serveradresse, Token und ID des Vault-Objekts ein.
  3. Prüfen Sie die optionalen Einstellungen zum Ein- und Ausschließen:
Option Bedeutung
Sync Obsidian settings (.obsidian) Bezieht Themes, Snippets und unterstützte Anwendungseinstellungen ein; gerätespezifisches Workspace-Layout und Cache-Dateien bleiben ausgeschlossen. Standardmäßig deaktiviert
Sync community plugins (.obsidian/plugins) Bezieht Code und Daten anderer Plugins ein; die gerätespezifischen Einstellungen und Zugangsdaten von InventTasks bleiben ausgeschlossen. Standardmäßig deaktiviert
Skip new files larger than (MB) Lokales Upload-Limit für Dateien, die dem Server noch nicht bekannt sind; 0 bedeutet kein Limit auf Pluginseite, das Serverlimit gilt dennoch
Excluded paths Ein Muster pro Zeile: Folder/ überspringt einen Unterbaum, *.mp4 entspricht dieser Dateiendung und # leitet einen Kommentar ein

Vault sync verwendet dieselben Optionen für die Erstsynchronisierung, Live-Updates, Last-write-wins-Konfliktlösung, den begrenzten Versionsverlauf, Wiederherstellungswerkzeuge und den Schutz vor Massenlöschungen wie die Synchronisierung des Aufgaben-Workspace. Synchronisieren Sie dieselben Dateien nicht gleichzeitig mit InventTasks Vault sync und einem anderen bidirektionalen Dienst wie Obsidian Sync.

Web-App und Vault-Browser#

Derselbe Container stellt die Web-App unter / bereit. Melden Sie sich mit dem Benutzernamen und Passwort eines Kontos an; die Sitzungscookies sind HttpOnly. Konten sind voneinander isoliert, und jedes Konto kann mehrere Task-manager- und Vault-Objekte besitzen.

Ein Task manager-Objekt öffnet die InventTasks-Oberfläche mit List, Board, Calendar, Table, Gantt, Timeline, Docs, Suche und Bearbeitung auf Grundlage der Serverkopie. Live-Updates zeigen Änderungen anderer verbundener Clients. Die Web-App bietet derzeit keine externen Benachrichtigungen, Kalendersynchronisierung, inkrementellen Plugin-Backups oder obsidian://-Links und stellt für Aufgabenressourcen keinen Rohdateneditor für .md-Dateien bereit.

Ein Vault-Objekt öffnet einen Dateibrowser. Er kann Markdown, Bilder, Audio-/Videodateien und PDFs in einer Vorschau anzeigen, Notizen und Ordner erstellen, Markdown oder Text bearbeiten, Dateien hoch- und herunterladen, umbenennen, verschieben und löschen, Wiki-Links folgen sowie Dateiversionen anzeigen und wiederherstellen. Diese Vorgänge verändern die Serverkopie und werden mit den konfigurierten Geräten synchronisiert.

Externe API#

Aktivieren Sie für Automatisierungen die External API separat am jeweiligen Serverobjekt im Modus Off, Read-only oder Full. Sie verwendet einen eigenen Schlüssel im Format ITX.… und nicht das Sync-Token. Der Schlüssel wird einmal angezeigt und auf dem Server nur als Hash gespeichert. Die API-Konsole liegt unter /api-console, die OpenAPI-3.1-Spezifikation unter /api/ext/v2/openapi.json und die vollständige Anleitung in der API-Dokumentation. Lassen Sie den API-Zugriff deaktiviert, wenn er nicht benötigt wird, verwenden Sie den Modus mit den geringsten erforderlichen Rechten und rotieren Sie einen möglicherweise offengelegten Schlüssel.