Syncing Obsidian with Nextcloud

For a while, I was strongly deterred from using Obsidian because it forces you to use their Obsidian Sync servers on iOS. I wanted to be able to use my private Nextcloud instance to sync everything. Since I constantly jot down ideas on my phone and act on them on my computer, this was a deal-breaker for me. I figured I could sync it via git but that seemed very clunky to me. Using the Nextcloud app to sync on iOS doesn’t work since Obsidian doesn’t let you control where you store the vault.

Fortunately, there is a solution - the Remotely Save plugin for Obsidian. It lets you use WebDAV to set up syncing which means you can use any cloud service to sync, not just their proprietary one. The plugin has a few more options (S3, Onedrive, Dropbox), but this will work for Nextcloud (and any other WebDAV enabled cloud service).

Setting it up is relatively straight-forward. Download the plugin and go to Settings -> Community Plugins -> Remotely Save. The menu should look like this.

In the drop-down labelled “Choose A Remote Service”, set it to “Webdav”.

Then, you need to set the server address to the webdav URL of your Nextcloud server. THIS IS IMPORTANT, DO NOT JUST SET IT TO example.com, IT WON’T WORK!

The nextcloud documentation says the WebDAV URL is example.com/nextcloud/remote.php/dav/files/USERNAME/. Put that in the “Server address” box, replacing example.com with your Nextcloud instance and USERNAME with your username. Remember to add http:// or https:// beforehand, otherwise the plugin will complain. Put in your username and password in the corresponding boxes and then scroll down to check the connection.

If everything works properly, you should be able to sync your Obsidian vault to Nextcloud. I am shocked there are practically no references on-line for this, as it is incredibly useful and ultimately made me adopt Obsidian and ditch the workflow I was using before.

September 2024 Update:

The depth-header setting has changed. It used to default to auto, but now it defaults to 1. I recommend changing this to infinity to increase performance. It lets the plugin grab all of the file information from the server in one go instead of doing it one file at a time.

Last modified: September 24, 2024