Skip to content

Sync notes between local and cloud with smart conflict: S3 (Amazon S3/Cloudflare R2/Backblaze B2/...), Dropbox, webdav (NextCloud/InfiniCLOUD/Synology/...), OneDrive, Google Drive (GDrive), Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

License

Notifications You must be signed in to change notification settings

angeloluidens/remotely-save

 
 

Repository files navigation

Remotely Save

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

  • Supports:
    • Amazon S3 or S3-compatible (Cloudflare R2 / BackBlaze B2 / MinIO / ...)
    • Dropbox
    • OneDrive for personal (App Folder)
    • OneDrive for personal (Full) (PRO feature)
    • Webdav (NextCloud / InfiniCloud / Synology webdav server / ...)
    • Webdis
    • Google Drive (GDrive) (PRO feature)
    • Box (PRO feature)
    • pCloud (PRO feature)
    • Yandex Disk (PRO feature)
    • Koofr (PRO feature)
    • Azure Blob Storage (PRO feature)
    • 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.
  • Skip Large files and skip paths by custom regex conditions!
  • Sync Algorithm is provided for discussion.
  • Basic Conflict Detection And Handling for free version. Advanced Smart Conflict Handling for PRO version.
  • Source Available. See License for details.

Limitations

  • 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 fyears/remotely-save 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

S3

  • Tutorials / Examples:
  • Prepare your S3 (-compatible) service information: endpoint, region, access key id, secret access key, bucket name.
  • If you are using AWS S3, create policy and user.
  • Very old version of Obsidian needs configuring CORS.
  • Download and enable this plugin.
  • Enter your information to the settings of this plugin.
  • If you do not set the prefix in the settings, the bucket should be empty and solely for syncing a vault. You can set the prefix in the settings so that the same bucket can store multiple vaults.
  • If you want to enable end-to-end encryption, also set a password in settings. If you do not specify a password, the files and folders are synced in plain, original content to the cloud.
  • Click the new "circle arrow" icon on the ribbon (the left sidebar), every time you want to sync your vault between local and remote. (Or, you could configure auto sync in the settings panel (See next chapter).) While syncing, the icon becomes "two half-circle arrows". Besides clicking the icon on the sidebar ribbon, you can also activate the corresponding command in the command palette.
  • Be patient while syncing. Especially in the first-time sync.
  • If you want to sync the files across multiple devices, your vault name should be the same while using default settings.

Dropbox

  • This plugin is NOT an official Dropbox product. The plugin just uses Dropbox's public API.
  • After the authorization, the plugin can read your name and email (which cannot be unselected on Dropbox api), and read and write files in your Dropbox's /Apps/remotely-save folder.
  • If you decide to authorize this plugin to connect to Dropbox, please go to plugin's settings, and choose Dropbox then follow the instructions. More with screenshot is here.
  • Password-based end-to-end encryption is also supported. But please be aware that the vault name itself is not encrypted.
  • If you want to sync the files across multiple devices, your vault name should be the same while using default settings.

OneDrive for personal (App Folder)

  • This plugin is NOT an official Microsoft / OneDrive product. The plugin just uses Microsoft's OneDrive's public API.
  • This plugin only works for "OneDrive for personal", and not works for "OneDrive for Business" (yet). See #11 to further details.
  • After the authorization, the plugin can read your name and email, and read and write files in your OneDrive's /Apps/remotely-save folder. The free version of Remotely Save only connects to App Folder, while the PRO version can connect to the root folder in Onedrive. See below PRO part.
  • If you decide to authorize this plugin to connect to OneDrive, please go to plugin's settings, and choose OneDrive then follow the instructions.
  • Password-based end-to-end encryption is also supported. But please be aware that the vault name itself is not encrypted.
  • If you want to sync the files across multiple devices, your vault name should be the same while using default settings.
  • You might also want to checkout faq for OneDrive.

webdav

Webdis

  • Tutorials:
  • Mostly experimental.
  • You have to setup and protect your web server by yourself.

Onedrive (Full access) (PRO feature)

PRO (paid) feature "sync with Onedrive (Full)" allows users to to sync with Onedrive root folder. Tutorials and limitations are documented here.

Google Drive (GDrive) (PRO feature)

PRO (paid) feature "sync with Google Drive" allows users to to sync with Google Drive. Tutorials and limitations are documented here.

Box (PRO feature)

PRO (paid) feature "sync with Box" allows users to to sync with Box. Tutorials and limitations are documented here.

pCloud (PRO feature)

PRO (paid) feature "sync with pCloud" allows users to to sync with pCloud (using its native API instead of webdav). Tutorials and limitations are documented here.

Yandex Disk (PRO feature)

PRO (paid) feature "sync with Yandex Disk" allows users to to sync with Yandex Disk (using its native API instead of webdav). Tutorials and limitations are documented here.

Koofr (PRO feature)

PRO (paid) feature "sync with Koofr" allows users to to sync with Koofr (using its native API instead of webdav). Tutorials and limitations are documented here.

Azure Blob Storage (PRO feature)

PRO (paid) feature "sync with Azure Blob Storage" allows users to to sync with Azure Blob Storage. Tutorials and limitations are documented here.

Smart Conflict (PRO feature)

Basic (free) version can detect conflicts, but users have to choose to keep newer version or larger version of the files.

PRO (paid) feature "Smart Conflict" gives users one more option: merge small markdown files, or duplicate large markdown files or non-markdown files.

See documents here

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.

Sync On Save

  • You can configure sync on save in settings.
  • In sync on save mode, if any error occurs, the plugin would fail silently.

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).

PRO Features

See PRO for more details.

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

Sync notes between local and cloud with smart conflict: S3 (Amazon S3/Cloudflare R2/Backblaze B2/...), Dropbox, webdav (NextCloud/InfiniCLOUD/Synology/...), OneDrive, Google Drive (GDrive), Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.2%
  • JavaScript 1.3%
  • Other 0.5%