remotely-save/README.md

103 lines
8.3 KiB
Markdown
Raw Normal View History

2021-11-14 14:34:07 +00:00
# Remotely Save
2021-10-17 14:50:12 +00:00
2021-12-28 16:34:16 +00:00
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](https://img.shields.io/github/stars/fyears/remotely-save?style=social)](https://github.com/fyears/remotely-save) on Github.
2021-10-17 14:50:12 +00:00
2022-01-06 10:38:35 +00:00
[![BuildCI](https://github.com/fyears/remotely-save/actions/workflows/auto-build.yml/badge.svg)](https://github.com/fyears/remotely-save/actions/workflows/auto-build.yml)
2022-01-02 17:07:41 +00:00
2022-01-05 17:48:18 +00:00
[![total downloads auto count)](https://remotely-save.github.io/auto-download-stats/totalDownloads.svg)](https://github.com/fyears/remotely-save/releases)
2021-12-17 16:31:04 +00:00
2021-11-14 16:35:56 +00:00
## Disclaimer
2021-11-06 05:15:54 +00:00
2021-12-03 17:21:37 +00:00
- **This is NOT the [official sync service](https://obsidian.md/sync) provided by Obsidian.**
2021-11-06 05:15:54 +00:00
2021-11-14 16:35:56 +00:00
## !!!Caution!!!
2021-11-06 05:15:54 +00:00
2022-01-01 10:44:14 +00:00
As of Jan 2022, the plugin is considered in BETA stage. **DO NOT USE IT for any serious vaults.** **ALWAYS, ALWAYS, backup your vault before using this plugin.**
2021-11-06 05:15:54 +00:00
2021-11-14 16:35:56 +00:00
## Features
2021-10-17 14:50:12 +00:00
2021-12-09 17:05:47 +00:00
- Supports:
- Amazon S3 or S3-compatible
- Dropbox
- OneDrive for personal
2021-12-09 17:05:47 +00:00
- Webdav
2021-11-14 16:35:56 +00:00
- **Obsidiain Mobile supported.** Vaults can be synced across mobile and desktop devices with the cloud service as the "broker".
- **[End-to-end encryption](./docs/encryption.md) supported.** Files would be encrypted using openssl format before being sent to the cloud **if** user specify a password.
2022-01-20 05:11:30 +00:00
- **Scheduled auto sync supported.** Manual sync is also supported, of course.
2021-11-14 16:35:56 +00:00
- **[Minimal Intrusive](./docs/minimal_intrusive_design.md).**
- **Fully open source under [Apache-2.0 License](./LICENSE).**
- **[Sync Algorithm open](./docs/sync_algorithm.md) for discussion.**
2021-10-17 14:50:12 +00:00
2021-11-14 16:35:56 +00:00
## Limitations
2021-10-17 14:50:12 +00:00
2021-11-14 16:35:56 +00:00
- **"deletion" operation can only be triggered from local device.** It's because of the "[minimal intrusive design](./docs/minimal_intrusive_design.md)". May be changed in the future.
- **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.
- **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.
2021-10-17 14:50:12 +00:00
2021-12-09 17:34:19 +00:00
## 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:
- Questions: [GitHub repo Discussions](https://github.com/fyears/remotely-save/discussions)
- Suggestions: also in [GitHub repo Discussions](https://github.com/fyears/remotely-save/discussions)
- Bugs: [GitHub repo Issues](https://github.com/fyears/remotely-save/issues) (NOT Discussion)
Additionally, the plugin author may occasionally visit Obsidian official forum and official Discord server, and pay attention to this-plugin-related information there.
2021-11-14 16:35:56 +00:00
## Download and Install
2021-10-17 14:50:12 +00:00
2022-01-08 05:47:09 +00:00
- Option #1: Search in the official "community plugin list", or click [obsidian://show-plugin?id=remotely-save](obsidian://show-plugin?id=remotely-save), then install the plugin.
2021-12-17 16:31:04 +00:00
- Option #2: You can also use [Obsidian42 - BRAT](https://github.com/TfTHacker/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)](https://img.shields.io/github/downloads-pre/fyears/remotely-save/latest/main.js?sort=semver)](https://github.com/fyears/remotely-save/releases) Manually download assets (`main.js`, `manifest.json`, `styles.css`) from the latest release.
- Option #4: [![BuildCI](https://github.com/fyears/remotely-save/actions/workflows/auto-build.yml/badge.svg)](https://github.com/fyears/remotely-save/actions/workflows/auto-build.yml) Every artifacts are placed in the "Summary" under every successful builds. It's automatically generated by every commit, may break something.
2021-11-14 16:35:56 +00:00
## Usage
2021-10-17 14:50:12 +00:00
2021-12-09 17:34:19 +00:00
### S3
2021-11-21 16:06:50 +00:00
2021-11-14 16:35:56 +00:00
- Prepare your S3 (-compatible) service information: [endpoint, region](https://docs.aws.amazon.com/general/latest/gr/s3.html), [access key id, secret access key](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-your-credentials.html), bucket name. The bucket should be empty and solely for syncing a vault.
2021-11-15 15:36:58 +00:00
- Configure (enable) [CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) for requests from `app://obsidian.md` and `capacitor://localhost` and `http://localhost`. It's unfortunately required, because the plugin sends requests from a browser-like envirement. And those addresses are tested and found on desktop and ios and android.
2021-11-14 16:35:56 +00:00
- Download and enable this plugin.
2021-12-11 16:02:41 +00:00
- Enter your information to the settings of this plugin.
2021-11-14 16:35:56 +00:00
- 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.
2022-01-16 15:15:18 +00:00
- 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".
2021-11-14 16:35:56 +00:00
- **Be patient while syncing.** Especially in the first-time sync.
2021-11-21 16:06:50 +00:00
2021-11-29 16:41:41 +00:00
### Dropbox
- **This plugin's function for Dropbox is not as mature as functions for S3.**
- **This plugin is NOT an official Dropbox product.** The plugin just uses Dropbox's public API.
2022-01-01 10:44:14 +00:00
- 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.
2021-11-29 16:41:41 +00:00
- If you decide to authorize this plugin to connect to Dropbox, please go to plugin's settings, and choose Dropbox then follow the instructions.
2021-12-11 15:13:55 +00:00
- Password-based end-to-end encryption is also supported. But please be aware that **the vault name itself is not encrypted**.
2021-11-29 16:41:41 +00:00
### OneDrive for personal
2022-01-01 10:44:14 +00:00
- **This plugin's function for OneDrive is not as mature as functions for S3.**
- **This plugin is NOT an official Microsoft / OneDrive product.** The plugin just uses Microsoft's [OneDrive's public API](https://docs.microsoft.com/en-us/onedrive/developer/rest-api).
- This plugin only works for "OneDrive for personal", and not works for "OneDrive for Business" (yet). See [#11](https://github.com/fyears/remotely-save/issues/11) to further details.
2022-01-01 10:44:14 +00:00
- After the authorization, the plugin can read your name and email, and read and write files in your OneDrive's `/Apps/remotely-save` folder.
- 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**.
2021-11-21 16:06:50 +00:00
### webdav
2021-12-09 17:05:47 +00:00
- **webdav support is considered experimental.**
- Currently only supports BASIC authorization method.
2021-12-09 17:34:19 +00:00
- Currently 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.
2022-01-01 10:49:10 +00:00
- 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.
2021-12-09 17:34:19 +00:00
- The plugin is tested successfully under python package [`wsgidav` (version 4.0)](https://github.com/mar10/wsgidav). See [this issue](https://github.com/mar10/wsgidav/issues/239) for some details.
2021-12-11 15:13:55 +00:00
- 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**.
2021-12-11 15:10:30 +00:00
2022-01-16 15:07:26 +00:00
## 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.
2022-01-16 15:10:59 +00:00
## Bonus: Import And Export Not-Oauth2 Plugin Settings By QR Code
2021-12-11 15:10:30 +00:00
2022-01-16 15:10:59 +00:00
See [here](./docs/import_export_some_settings.md) for more details.