up::
tags:: #how-to #sync #free-alternative #windows #android
Sync Obsidian Vaults for Free
Motive
The motive here is to find a solution that can sync my Obsidian Vaults across my devices, which can have different OS.
Although Obsidian Sync is the most convenient option, but the $10 monthly is hard to swallow, at least for me. Therefore, I pursued free alternatives.
Methods and Tools
1. Git Version Control
- Advantages:
- Git Version Control provides the ability to track and manage the changes in all files included in the repo.
- I am comfortable with Git commands
- Steps required:
- Initialize a new repo
- Decide when a right amount of change is worth to commit a file, or files.
- Give a proper commit message for future me to be grateful.
- Push the changes to the remote repo.
- Pull the changes from the remote repo into other devices.
- Caveats:
- Doing steps 2 to 5 so frequently, which high effort-vs-impact ratio.
- Need to do the exact same steps for each device.
- The urge that I need to push the changes as soon as possible to be readily available on other devices.
- There is no direct installation for GIT. All is needed is to install the community plugin. But if you need more flexibility and security like encryption and SSH, there are multiple guides here and here to do so.
2. SyncThing
- Overview:
- Steps required:
- Choose the Vault folder on the web UI
- Connect to my other devices and choose the location for the synced folder on each of the connected device
- Caveats:
- The devices need to be online at the same time to be synced together.
- There is no real file versioning. The files could be overridden without noticing. Especially that Obsidian auto-saves.
3. Cloud Storage
- Overview:
- Cloud storage is always online and could be accessed from anywhere
- Practically, it has infinite storage space.
- Services provide cloud storage
- OneDrive
- Google Drive
- Amazon S3
- Cloudflare R2
Solution
So I decided to set up GIT as my version control as a backup and Cloud Storage for syncing
- Steps to set up GIT on main device:
- Make sure that GIT is installed in your system.
- Install Obsidian GIT community plugin
- Create a new repo using Obsidian command palette (CTRL + P) and enter
Git: Initialize a new repo
- To overcome the need to commit my changes and write a commit message, I use the auto backup feature in Obsidian GIT community plugin.
- Steps to set up cloud storage for syncing, I am using Cloudflare R2 as my cloud storage:
- Create an R2 Bucket
- Generate an R2 API Token to get:
- Token value
- Access Key ID
- Secret Access Key
- Use jurisdiction-specific endpoints for S3 clients
- Install Remotely Save community plugin on each device and configure as below
- Set
A Remote Service
asS3 or compatible
- Set
Endpoint
as "Use jurisdiction-specific endpoints for S3 clients" value you got on step 2.4 - Set
Region
asauto
- Set
Access Key ID
as "Access Key ID" value you got on step 2.3 - Set
Secret Access Key
as "Secret Access Key" value you got on step 2.2 - Set
Bucket Name
as the name of the bucket you created in step 1 - Leave the rest of this section as default.
- Click on
Check
button at the end of this section to make sure that the configuration is correct.
- Set
- Start syncing by either:
- clicking on the button on Obsidian left bar, or using command palette
Remotely Save: start sync
.
- clicking on the button on Obsidian left bar, or using command palette