简体中文 • Ongoing Polling • Q&A • License
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.
📢 Here's ongoing polling about new features! I recommend everyone who sees this participate in the 5-second anonymous polling to allow developers to obtain a fair result.
🔄 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
⚡ 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.
This plugin is currently in beta. You can install it using the BRAT plugin:
- Go to Community plugins and search for
BRAT - Install and enable it
- Go to BRAT settings, click Add beta plugin, copy and paste
https://github.com/hesprs/obsidian-webdav-syncinto the Repository field - Select the latest version and click Add plugin
Configuration:
- Enter WebDAV server URL
- Enter account + credential
- Click Check connection
- Select remote directory
- Start sync
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.
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.
- Support syncing files in the Obsidian config folder (
.obsidian/) - Saving WebDAV credentials in Obsidian Keychain
- Allow users to adjust rate and concurrency limits
- Enhance observability of sync progress
- Implement E2E encryption like the one in Remotely Save
- Implement auto load balancer and download chunking to prevent Obsidian crash on large size files
- Refurbish sync selection UI
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 37% (till April 26 2026) of the effort is contributed by Nutstore.
Copyright ©️ 2026 Hesprs (Hēsperus), 2025-2026 Nutstore