Skip to content

jan-leila/dav-sync

 
 

Repository files navigation

dav-sync

This is yet another unofficial sync plugin for Obsidian. If you like it or find it useful, please consider give it a star GitHub Repo stars on Github.

BuildCI

downloads of latest version

Disclaimer

!!!Caution!!!

ALWAYS, ALWAYS, backup your vault before using this plugin.

Features

Stripped down version of the Remotely Save plugin with a focus on WebDAV

  • Supports:
    • Webdav
    • Here shows more connectable (or not-connectable) services in details.
  • Obsidian Mobile supported. Vaults can be synced across mobile and desktop devices with the cloud service as the "broker".
  • End-to-end encryption supported. Files would be encrypted using openssl format before being sent to the cloud if user specify a password.
  • Scheduled auto sync supported. You can also manually trigger the sync using sidebar ribbon, or using the command from the command palette (or even bind the hot key combination to the command then press the hot key combination).
  • Minimal Intrusive.
  • Fully open source under Apache-2.0 License.
  • Sync Algorithm open for discussion.

Limitations

  • To support deletions sync, extra metadata will also be uploaded. See Minimal Intrusive.
  • No Conflict resolution. No content-diff-and-patch algorithm. All files and folders are compared using their local and remote "last modified time" and those with later "last modified time" wins.
  • Cloud services cost you money. Always be aware of the costs and pricing. Specifically, all the operations, including but not limited to downloading, uploading, listing all files, calling any api, storage sizes, may or may not cost you money.
  • Some limitations from the browser environment. More technical details are in the doc.
  • You should protect your data.json file. The file contains sensitive information.
    • It's strongly advised NOT to share your data.json file to anyone.
    • It's usually NOT a good idea to check the file into version control. By default, the plugin tries to create a .gitignore file inside the plugin directory if it doesn't exist, for ignoring data.json in the git version control. If you know exactly what it means and want to remove the setting, please modify the .gitignore file or set it to be empty.

Questions, Suggestions, Or Bugs

You are greatly welcome to ask questions, post any suggestions, or report any bugs! The project is mainly maintained on GitHub:

Additionally, the plugin author may occasionally visit Obsidian official forum and official Discord server, and pay attention to this-plugin-related information there.

Download and Install

  • Option #1: Search in the official "community plugin list", or visit this: https://obsidian.md/plugins?id=remotely-save (which should redirect you into Obsidian app), then install the plugin.
  • Option #2: You can also use Obsidian42 - BRAT to install this plugin. Input jan-leila/dav-sync in the configuration of BRAT.
  • Option #3: GitHub release (latest by SemVer and asset including pre-releases) Manually download assets (main.js, manifest.json, styles.css) from the latest release.
  • Option #4: BuildCI Every artifacts are placed in the "Summary" under every successful builds. It's automatically generated by every commit, may break something.

Usage

  • About CORS:
    • If you are using Obsidian desktop >= 0.13.25 or iOS >= 1.1.1, you can skip this CORS part.
    • If you are using Obsidian desktop < 0.13.25 or iOS < 1.1.1 or any Android version:
      • The webdav server has to be enabled CORS for requests from app://obsidian.md and capacitor://localhost and http://localhost, AND all webdav HTTP methods, AND all webdav headers. These are required, because Obsidian mobile works like a browser and mobile plugins are limited by CORS policies unless under a upgraded Obsidian version.
      • Popular software NextCloud, OwnCloud, rclone serve webdav do NOT enable CORS by default. If you are using any of them, you should evaluate the risk, and find a way to enable CORS, before using this plugin, or use a upgraded Obsidian version.
        • Unofficial workaround: NextCloud users can evaluate the risk by themselves, and if decide to accept the risk, they can install WebAppPassword app, and add app://obsidian.md, capacitor://localhost, http://localhost to Allowed origins
        • Unofficial workaround: OwnCloud users can evaluate the risk by themselves, and if decide to accept the risk, they can download .tar.gz of WebAppPassword above and manually install and configure it on their instances.
      • The plugin is tested successfully under python package wsgidav (version 4.0). See this issue for some details.
  • Your data would be synced to a ${vaultName} sub folder on your webdav server.
  • Password-based end-to-end encryption is also supported. But please be aware that the vault name itself is not encrypted.

Scheduled Auto Sync

  • You can configure auto syncing every N minutes in settings.
  • In auto sync mode, if any error occurs, the plugin would fail silently.
  • Auto sync only works when Obsidian is being opened. It's technically impossible to auto sync while Obsidian is in background, because the plugin just works in the browser environment provided by Obsidian.

How To Deal With Hidden Files Or Folders

By default, all files or folder starting with . (dot) or _ (underscore) are treated as hidden files, and would NOT be synced. It's useful if you have some files just staying locally. But this strategy also means that themes / other plugins / settings of this plugin would neither be synced.

In the latest version, you can change the settings to allow syncing _ files or folders, as well as .obsidian special config folder (but not any other . files or folders).

How To Debug

See here for more details.

Bonus: Import And Export Not-Oauth2 Plugin Settings By QR Code

See here for more details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.2%
  • JavaScript 3.0%
  • Other 0.8%