Obsidian Sync: Self-Hosted Server

Still wishing this feature actually gets implemented into obsidian

2 Likes

I have a compromise solution that would require minimal work on your end.

The first step would be publishing the current Sync API definition, the bare minimum that would allow one to implement their own - I’d argue that a standard OpenAPI schema would be more than enough (and I want to presume that you use OpenAPI internally, since it’s an awesome tool).

Then, the only thing needed to be done is to add an option for a custom endpoint when you set Sync up. Maybe even throw in a “you’re connecting to an untrusted server, please make sure your data is safe, we’re not responsible if your cat turns your microwave into a nuclear bomb, etc.” disclaimer for good measure.

This way, people who really want to host their own Sync server can write their own implementation of it, but most will still use the officially recommended service.

5 Likes

I would also appreciate a native solution for syncing with a server of choice via Webdav.
Specially for iOS.

Also due to the Data Protection Law in germany (BDSG) we are not allowed to store personal information of other people on servers that are not fulfilling the requirements of the DSGV-regulation of the BDSG. Meaning für businesses it would be illegal to manage confidential data with Obsidian Sync or Sync via iCloud if they don’t fulfill the DSGV.
iCloud does as far as I know not fulfill it, servers where I know that they fulfill it are hosted in germany. Dropbox fulfills it, maybe by hosting on servers located in germany.
So by having the possibility to sync to a self chosen server, also this could be solved.

Thank you for reading and kind regards

1 Like

Personally I would be more interested in a solution that involved using a self configured solution like S3 or an EFS equivalent.

My use case is an obsidian service deployed in kubernetes (EKS) that I want to be accessible from mobile devices & a web-browser, and can be simultaneously accessed/edited by multiple users.

I am imagining that this can be accomplished by implementing an S3 compatible storage API (that way something like minio could be used too) or still using the desktop like file storage but assuming/requiring that a storage volume like EFS will be used, and making sure that simultaneous access from separate processes can occur. Perhaps both?

Self-hosted LiveSync plugin

  1. vrtmrz/obsidian-livesync
    GitHub - vrtmrz/obsidian-livesync

Self-hosted LiveSync is a community-implemented synchronization plugin.

Features

  • Visual conflict resolver included.
  • Bidirectional synchronization between devices nearly in real-time
  • You can use CouchDB or its compatibles like IBM Cloudant.
  • End-to-End encryption is supported.

How to use

  1. Setup IBM Cloudant
  2. (Fly.io)
  3. Setup your CouchDB
  1. obsidian-livesync/setup_own_server.md at main · vrtmrz/obsidian-livesync
    obsidian-livesync/docs/setup_own_server.md at main · vrtmrz/obsidian-livesync · GitHub

Setup CouchDB to your server

4 Likes

Could Obsidian at least add support for file system browsing on IOS? I have a NAS mapped through the Files app that I keep my vaults on and would love to access that through the app

It’s not possible

It’s not that easy Full File System Access For The iOS App (Open Existing Vault/Folder)

I don’t know if this is what you are after…I’m a newbie at this. But…
I have an Obsidian vault that I sync to a local server with FE File Explorer app. I think it’s called Owlfiles now. I can sync the Obsidian folders to my iPhone with FE File Explorer app on my phone and even edit the basic markdown files and resync and the changes will show up on my computer.

There isn’t much of an issue with trust because the notes are end-to-end encrypted. That is, the notes are stored on server encrypted and you have the key.

For personal use this is fine and in fact reassuring, but if the encryption is not at least auditable then there is still an issue of trust that makes this insufficient for many business environments.

You can use Nextcloud with WebDAV to remotely mount your files on android, use DAVx^5 to do that.

This might be a good use case for something like Amazon Machine Images.

This would let the obsidian developers charge a fee (perhaps $5/month) while allowing Obsidian to be run for users who want more storage, different availability profiles, or even on-prem capabilities with AWS Outposts, government cloud, or other private AWS cloud options.

I’m wary when I see the term “military grade encryption”.

The military grade is more a market thing at this point. We use the common aes256 and standard libraries.

I work in an offline environment, Having an enterprise option for a self-hosted sync server would be amazing. Bonus points if includes a way to host API’s for offline plugin management.

2 Likes

Firstly, I want to extend my appreciation for all the efforts put into making Obsidian such a powerful and versatile tool. It’s evident from the discussions above that the community highly values the ability to control their data and its storage.

I’d like to strongly advocate for a native self-hosted solution for Obsidian. While I understand that there might be complexities and challenges involved, the benefits, in my opinion, would be manifold:

Data Sovereignty: The ability to self-host ensures that users have complete control over their data. This is not just about trust; it’s about having the freedom and flexibility to manage our own data, especially in light of increasing data protection regulations globally.

Versatility: While many of us would use this feature for business purposes, as the conversations have highlighted, there are numerous use cases that stretch beyond the corporate realm. A one-size-fits-all approach might not cater to the diverse needs of the Obsidian community. Offering self-hosted solutions would allow everyone, from individual users to businesses, to tailor their Obsidian experience according to their unique needs.

Potential Revenue Stream: I, among many others, would be more than willing to pay for a native self-hosted solution, even if it carries an associated cost. This could serve as an additional revenue stream for Obsidian, ensuring that you are compensated for the effort and resources put into developing and maintaining this feature.

Reduced Server Load: As some members pointed out, allowing users to self-host could potentially reduce the load on Obsidian’s servers, leading to cost savings and improved performance for other services.

Attracting More Users: The addition of a self-hosted solution could attract a broader user base, especially those who prioritize data privacy and customization. This could further strengthen Obsidian’s position in the market.

Enhanced Trust: Offering users the choice to self-host could further solidify the trust in Obsidian. Even though the data is encrypted, having the option to manage our own data storage can add an extra layer of assurance for many users.

In conclusion, while I understand the hesitance and the potential challenges of implementing a native self-hosted solution, I genuinely believe that the benefits, both to the users and Obsidian as a platform, would be substantial. Let’s not limit this to just businesses or enterprises; every user, regardless of their intent, should have the option to choose where and how they store their data.

2 Likes

Have you looked at the Self-hosted LiveSync plugin mentioned several times above? It would appear to do pretty much everything you’re looking for, and it’s available now.

2 Likes

Thanks for re-posting about the LiveSync plugin - I had missed it earlier in this thread and I will definitely check it out. I’ve had a few issues recently with the official sync, so it will be nice to have an option.

3 Likes

I have a couple of issues with self-hosted LiveSync for these use cases:

  1. Conflict management is not handled by the plugin, whereas the Obsidian Sync code handles that well (and is the only sync option to implement this that I’m aware of)
  2. It’s not obvious that the plugins are capable of hooking and syncing at all the right times and can prevent the software from sleeping while syncing and so forth. Sync appears to be the best implementation of this.
  3. Sync is much more efficient and reliable for larger vaults with larger files and managing them. the obsidian-git sync code fails hard on mobile for a number of use cases and likely will never support it. Chunked file access is a problem for plugins is my understanding. Mobile is a first-class player and many people use Sync explicitly to work with iOS devices because for them, other 3rd party syncing options are limited due to Apple’s security model.
  4. CouchDB is a weird back-end - something like a filesystem based storage system or pgsql/sqlite is more commonly used.
  5. I’d really like to support obsidian for enabling this as a first-class feature that isn’t a threat to their revenue model somehow. I’d be HAPPY to pay extra for an authorized feature to point to an open source (or their proprietary) server implementation. I want obsidian to succeed, but I have two use-cases that compel me to want other sync options and have been unimpressed with all options other than theirs and would REALLY like to be able to just host an instance and change the sync’ed Vault storage location without violating the TOS.
2 Likes

I want to use Obsidian at work, but even with E2E my employer does not allow storing proprietary and confidential information on third party servers.
The sync alternatives, especially with Android are suboptimal and I’d even be willing to pay for a license that lets me run my own instance of the sync server or a way to sync with a service like Google Drive/S3/GCS and have the same live sync functionality as with the official service.

If the main holdback is financial support for the tool, I totally get that. Maybe have a look at Bitwarden which let’s me run my own server but still pay for it.

Meanwhile I’ll give live sync a try.

1 Like

same here but i’m looking to share some notes only to other friends etc. the share note plugin is great but for some reason cloudflare has banned my IP so i can’t use it. any self-hosted solution would be great for individual notes.