Skip to content

hesprs/obsidian-webdav-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

595 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Obsidian WebDAV Sync logo
Obsidian WebDAV Sync

General-purpose & bidirectional WebDAV syncing for your vault.

accumulated downloads ci TypeScript

็ฎ€ไฝ“ไธญๆ–‡ โ€ข Plugin Store โ€ข Notices โ€ข License

Introduction

Obsidian WebDAV Sync is a general-purpose syncing plugin for Obsidian via a WebDAV server.

There's already a lot of plugins to sync your notes between devices. But when we have a look at the syncing plugin landscape, we can clearly see that each plugin has its own disadvantages that prevents you from using it:

  • Remotely Save: full-featured syncing plugin, but currently unmaintained and full of bugs (like deleted files come back).
  • Syncthing Integration: a great way of P2P syncing, but requires both of your devices to be online, not 24/7.
  • Live Sync: most robust solution in the room, but requires custom server setup.
  • Git Integration: ideal for production-level collaboration and provenance, but not suitable for daily usage.
  • Vendor-specific Syncing Plugin (like Nutstore Sync): tailored experiences, but locked to a single vendor.

Acknowledging that WebDAV would be the most convenient DIY solution for syncing, this plugin comes to provide a balanced experience of day-to-day convenience, easy setup, and the robustness that doesn't make your notes into a chaos.

Notices

๐Ÿ“ข V3 is Coming

An extremely huge update V3 is being actively developed and will released soon. It is completely rewritten and will achieve noticeably better sync performance, much shorter load time, and revolutionary extensibility. More crucially, the support for other cloud services such as S3 and GDrive would become effortless in the new paradigm.

However, the plugin in V3 is fundamentally incompatible with current V2. Existing users may suffer breakage when updating. A guide will be written later, before the release of V3, to elaborate the changes and how to safely upgrade from V2 to V3.

๐Ÿ“ข Here is a Voting

Here's ongoing polling about new directions in development! I recommend everyone who sees this participate in the 5-second anonymous polling to allow developers to obtain a fair result.

Features

๐Ÿ”„ Reliable Bidirectional Syncing:

  • This plugin syncs your vault with a WebDAV storage.
  • It does three-way comparison: remote state, local state, and recorded local & remote states of last sync
  • Then it follows a decision matrix for maximum precision and data integrity, detail see this page.

๐Ÿ”€ Auto Sync and Conflict Handling:

  • The plugin supports automatically triggered sync as follows:
    • Startup sync: trigger a sync when Obsidian starts.
    • Scheduled sync: trigger syncs periodically.
    • Real-time sync: trigger syncs immediately when a change is detected.
  • The plugin supports conflict handling methods:
    • Smart merge
    • Latest survive
    • Use remote
    • Use local
    • Skip

๐Ÿ” Client-side Encryption:

  • This plugin supports encrypting your files before uploading.
  • It prevents unauthorized file access, and detects unintended file modification and movement at remote side.
  • The encryption pipeline assumes stricter threat model, and achieves theoretically higher security, faster performance and smaller plugin size than similar solutions (like Remotely Save), see detail in the encryption specification.

โšก Maximum Performance:

  • Most sync operations are performed via parallelized network requests.
  • Real-time sync uses cached remote states by default, allowing it to complete syncing within seconds.
  • 10 times smaller size than Remotely Save, 8 times faster startup loading time.

๐Ÿงฐ Detailed Config:

  • The plugin allows users to adjust various parameters to adapt for various services:
    • Max concurrent WebDAV requests: deal with service rate limiting.
    • Min time between WebDAV requests: deal with service rate limiting.
    • Skip large files: handle low storage space.
    • Max concurrent sync tasks: control CPU and disk usage.
    • Max concurrent throughput: control memory usage and prevent crashes.

๐Ÿ“ฆ Production-Level Scalability:

  • Handles vaults with more than 3000 files smoothly.
  • Load balancing and download chunking allows the plugin to handle gigabytes at once.
  • Large file downloading is resumable.

๐ŸŽจ Excellent UI and Observability:

  • Four ways (modals, status bar, notices, logs) to keep you aware of the syncing progress.
  • File changes are rendered as a file tree to allow granular selective syncing.
  • Log utility outputs human-readable markdown documents.

Install & Setup

You can install it from Obsidian plugin registry:

  1. Go to Community plugins and search for WebDAV Sync
  2. Find the one made by Hฤ“sperus
  3. Install and enable it

Configuration:

  1. Enter WebDAV server URL
  2. Enter account + credential
  3. Click Check connection
  4. Select remote directory
  5. Start sync

Common Questions

Why the plugin prompts me to input "ID" and "Secret" to add a WebDAV credential?

It might be confusing that it requires an ID + Secret pair to configure your password only. Actually, this is the new Keychain feature of Obsidian. When adding a new secret, the Secret is the place to input your true password, and the ID it requested is like a name to a person, whose only purpose it to help Obsidian distinguish secrets and represent them without using the secret directly.

So to add a secret and use it in the Credential field, you can type anything you like to the ID field (for example, webdav-token), and input your true password into the Secret field. Click save and link the new secret to the plugin.

Does this plugin support syncing Obsidian config folder (.obsidian)?

Yes, but this folder is excluded from syncing by default. To sync specific files or folders inside, (for example, Obsidian settings), you can go to plugin settings - Filter Rules - Inclusion rules and add a new rule .obsidian/app.json.

To sync the entire folder, which includes all settings, CSS snippets, and plugins, go to plugin settings - Filter Rules - Exclusion rules, and remove .obsidian.

Why 401 unauthorized error happens?

The most likely cause of this error is the rate limit of your WebDAV provider. You can adjust the rate control in the plugin settings.

Detailed solution is in this issue.

What should I do if I get an error during syncing?

You can simply retry the sync. An error does not block later syncs nor corrupt your files.

If the error persists after retrying, please open an issue, describing the error, your setup, with the support log attached.

How should I manage my WebDAV storage when using this plugin?

According to this plugin's file handling strategy, all remote changes will be propagated to all vaults. So it's generally not recommended to manually manage your WebDAV storage unless you intend to add / remove these files.

The only scenario you may need to manually delete some files happens when you exclude some files that were previously synced, now they will not be detected but remain on your WebDAV. These files are kept on remote to prevent false deletion. If you are sure that you have excluded these files in ALL your devices, you can manually clean up these files on your WebDAV.

Development Roadmap

Below is a list of planned features and improvements, the faster this plugin is adopted and the star โญ grows, the faster the development will be. Also, we welcome contributors that would like to help us with the development.

  • v1.2: Enhance observability of sync progress
  • v1.3: Allow users to adjust rate and concurrency limits
  • v2.3: Support syncing files in the Obsidian config folder (.obsidian/)
  • v2.3: Saving WebDAV credentials in Obsidian Keychain
  • v2.4: Implement auto load balancer and download chunking to prevent Obsidian crash on large size files
  • v2.4, v2.5.5: Refurbish sync selection UI
  • v2.5: Implement encryption like the one in Remotely Save
  • v3.0: Rewrite entirely, dynamic module loading, module store, asymmetric storage, and rebrand

License, Copyright, and Originality

Obsidian WebDAV Sync is forked from Obsidian Nutstore Sync and has undergone significant overhaul with focuses on universality, performance, and stability, licensed under the AGPL-3.0 License.

Although this project is not affiliated with Nutstore, thanks to Nutstore for their prototype and opensource. About 28% (till June 12 2026) of the effort is contributed by Nutstore.

Copyright ยฉ๏ธ 2026 Hesprs (Heฬ„sperus), 2025-2026 Nutstore

About

๐Ÿ”„ General-purpose & bidirectional WebDAV syncing for Obsidian vaults, maintained alternative to Remotely Save.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors