Self hosted sync as a built-in option

I’ve just stumbled across Obsidian looking for a better all round notes experience and the software looks great with only one thing missing. I would have added this as a comment to the existing WebDAV request in here but topic is closed. It seems the developers are keen to avoid this feature request but I really hope they will reconsider as it’s something that’s clearly important to a lot of people considering the thread that has been moved to the plugins forum.

Use case or problem

Sync Obsidian notes between PC and mobile devices (iOS/Android) using a self hosted service.

Due to data sovereignty and security requirements from clients, we are not able to use any cloud services for most of the work we do, despite any statements of E2E encryption. Everything must be hosted at known and audited locations. As a result of this, all our mail servers, data storage and services are self hosted on premise using encrypted storage.

While the Obsidian Sync service looks and sounds great, we’re just not able to use it. Same applies for any public sync services (iCloud drive/OneDrive/Dropbox etc).

Proposed solution

I’m conscious that the feedback from Obsidian so far is that they can’t support lots of different sync services, which is understandable. So it would make sense to offer one public (Obsidian Sync) and one private (To be determined). Most of the other sync options (OneDrive, Dropbox etc) are offering an equivalent service and are just options of convenience in most apps. Having a self hosted/private sync option is something entirely different and is mostly a requirement of company/client compliance.

WebDAV makes sense as it’s an RFC protocol and widely supported. SSH also makes sense as it’s a secure protocol but potentially less widely usable for those without a login shell. Personally, either would work here. Both would need server verification (certificate validation for WebDAV, fingerprint for SSH).

I don’t know how Obsidian Sync works, how passive or active the server is regarding version control etc. I’d imagine with E2E encryption that more is done at the client end.

It would be important for the self hosted sync option to maintain diff and versioning as per the public sync option.

In the previous feature request, it was asked that the server side element be encrypted. This makes complete sense. For our purposes it’s not essential as the storage would be encrypted but I would suggest for the wider user scenarios it would be important (for those without encrypted storage/VMs etc).

I use Enpass for my password management and this is stored on a WebDAV location using an encrypted wallet. It works great and it would be nice to have something similar for Obsidian.

Due to the nature of Obsidian’s storage (folder/file based) I’m sure there are challenges in this respect, but I’m sure you’ve got a solution for this!

Please reconsider this request for your core roadmap.

Current workaround (optional)

Current workarounds are a plugin:

https://github.com/remotely-save/remotely-save

The plugin looks interesting but it is made clear that it doesn’t offer any sort of diff facility, using a last modification time to resolve conflicts, potentially losing data when edited on multiple devices.

Or using git and Working Copy for iOS:

The git route is a nice idea too, as I’m really used to git for software development, but it requires third party software and actions on both PC/Mac and on iOS. My setup here is Mac and iOS, so I’d have to manually commit and push on my Mac and then pull using the Working Copy app before using the iOS Obsidian app. After mobile amendments I’d have to commit/push using Working Copy and then pull using git on my Mac. The user journey for this isn’t ideal.

Related feature requests (optional)

https://forum.obsidian.md/t/feature-webdav-sync/16795
https://forum.obsidian.md/t/support-webdav/2324

1 Like

There is alrady a FR open for this.

Thank you. I was too busy searching for the protocols and not the simple ‘self hosted’.

I’m happy to relocate my comments/request to that thread. The other thread does read more like a request for an actual server as opposed to just a remote storage location with generic protocol access which is what I’m suggesting (to broaden compatibility with user scenarios).

if you want to roll your own sync, you can do it today. They are just files on disk, you can use dropbox, you can use a network drive and rsync, you can use a git repo.

I get that, completely. I included the git element in ‘current workarounds’ in my request.

This was about incorporating that in your core product so that compliance didn’t have to come at the cost of inconvenience or compromise.

Using third party apps to keep pull/commit/pushing every time we move from device to device isn’t ideal but would function.

Having this feature within the app, automated, would be incredible. It is something I’d happy pay an annual subscription to take advantage of.

That is infact why we have the FR for self hosted sync server. We understand the need for certain businesses.

But implemening a “multi platform remote storage location with generic protocol access” is a problem as big as Obsidian if not bigger.

Without knowing anything about your server/storage implementation I can’t comment about how this could/would be adapted to work via a generic protocol/storage.

I’m glad that there’s a self hosted server request that’s live. I really hope it’s something you look into in the near future as it would fulfil my scenario. We have VM infrastructure to easily spin up servers as required. I was hoping for something more flexible for other users, but a self hosted server application would work for us.