# How I synchronize and backup my Obsidian Notes
[Obsidian](https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Obsidian) is my go-to tool for organizing thoughts, capturing and [connecting ideas](https://www.dsebastien.net/how-to-connect-ideas-together//), and maintaining a robust [Knowledge Management](https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Knowledge+Management) system. To me, Obsidian has [many benefits](https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Benefits+of+Obsidian) that are hard to compete with. I don't intend to switch to another tool anytime soon. Is is central to my [Personal Knowledge Management Process](https://notes.dsebastien.net/30+Areas/33+Permanent+notes/33.02+Content/Personal+Knowledge+Management+Process). That's why I want to ensure that I can access my notes from anywhere, that they are safe, and that I can recover them if needed.
![[How I synchronize and backup my Obsidian Notes (Article) - article.png]]
Caption: Synchronizing Obsidian notes across devices, and backing everything up locally and to the cloud. Image generated using AI
In this article, I will describe how I synchronize my notes across devices and how I back them up. My approach is overkill, but it gives me a lot of confidence about the safety of my system. I hope you will find some inspiration and motivation to do something similar.
## The tools I use to synchronize and backup my notes
My notes are __really__ valuable to me. I rely a lot on them, and never want to lose those. That's why I'm taking synchronization and backup very seriously.
At this time, I use a combination of the following to synchronize and backup those:
- Syncthing: Synchronize files across devices
- Google Drive: Cloud storage, available from anywhere
- Git + GitHub: Cloud code hosting with free private repositories
- [Backblaze](https://www.backblaze.com/): Cloud backups
- NAS: Local network backups
- [[Local backup plugin for Obsidian]]: Local backups
- [[Git plugin for Obsidian]]: Automatically save vault files with Git
- [[Obsidian File Recovery]] with the [[File recovery core plugin for Obsidian]]
- [[Time Machine plugin for Obsidian]]: easily recover data from file recovery snapshots and Git commits
## Syncing is not a backup
First of all, a warning. I will describe two approaches I combine. One consists in synchronizing my notes across devices. The other focuses on backing up the data. It's important to realize that synchronizing notes across devices is not a backup solution. If you delete a note on one device, it will be deleted on all devices. If you corrupt a note on one device, it will be corrupted on all devices. That's why it's important to have a real backup strategy in place.
Those WILL fail. Mistakes will replicate everywhere, and if you rely only on synchronization, then you're doomed to lose your data.
## Where my notes are backed up
I currently have many backups of my notes. This gives me peace of mind. Here is where my notes are currently backed up:
- Locally on my PC using the [[Local backup plugin for Obsidian]] for Obsidian and the [[File recovery core plugin for Obsidian]]
- In a private Git repository on GitHub, updated automatically with the [[Git plugin for Obsidian]]
- On multiple disks of my home NAS ([Synology DS1812+](https://amzn.to/3VxbQUf))
- On [Backblaze](<[Backblaze](https://www.backblaze.com/)>)
- On Google Drive
Thus, I have local backups, network backups, and cloud backups. I can recover my notes from anywhere, at any time. Each backup has clear timestamps, and I can recover the whole thing or past versions of any file.
In addition, even though I don't consider those as backups, I also have working copies of my notes in different places:
- My PC
- My Laptop
- My Android phone
- My NAS (two copies on different disks, one synchronized with Google Drive, and another through Syncthing)
- Google Drive
Last but not least, many of my notes are also shared publicly [on my blog](https://www.dsebastien.net/tag/blog/), and [on my Website](https://notes.dsebastien.net/) using [Obsidian Publish](https://obsidian.md/publish). I can actually recover those easily using [this python script](https://github.com/Saghetti0/obsidian-publish-downloader).
## How I synchronize my Obsidian notes
For a long time, I only synchronized my notes using Google Drive, and opened the Google Drive folder on my PC directly in Obsidian. I still do that, but I've now added Syncthing to the mix.
### Google Drive
First, Google Drive. In there, I have a folder for my notes, and the desktop client is installed on my Windows PC. Since Google Drive mounts a drive with the files, it's easy to open any folder on Google Drive as a vault in Obsidian.
![[How I synchronize and backup my Obsidian notes - google drive local.png]]
Caption: My notes in the locally available Google Drive folder
Whenever I make changes to my notes, the Google Drive client synchronizes those changes to the cloud. And those are thus available anywhere, with versioning for all files, and a trash where I can recover accidentally deleted files. In most cases, this is enough for me to recover from mistakes. But my Google Drive account could be banned/blocked at any time, so I don't trust it all that much.
### How I installed and configured Syncthing to sync my Obsidian vault on Windows
Recently, I have setup Syncthing on many of my devices. I use it to synchronize files in all directions, which is pretty fun. The client is solid, and it all works like a charm. As an added benefit, SyncThing also includes means to version files in a dedicated ".stversions" folder, in addition to handling synchronization conflicts quite nicely. Here's how I've set it all up. To get started, I have followed an [excellent guide](https://snippets.page/posts/sync-obsidian-notes-between-pc-and-android-with-syncthing/) I found on the Web.
On my Windows PC, I have installed Syncthing using [[Winget]], with the following command: `winget install --id=Syncthing.Syncthing -e`.
Once installed, I have configured Syncthing to run at startup. At first, I have configured a [scheduled task](https://docs.syncthing.net/users/autostart.html#run-at-user-log-on-or-at-system-startup-using-task-schedule), but then discovered a nicer approach, using the Open Source [SyncTrayzor](https://github.com/canton7/SyncTrayzor) app. I also installed it using Winget: `winget install -e --id SyncTrayzor.SyncTrayzor`. That application takes care of startup up Syncthing, and provides a nice tray icon to monitor the synchronization, as well as a GUI that embeds the Web UI of Syncthing:
![[How I synchronize and backup my Obsidian notes - synctrayzor.png]]
Caption: The Syncthing UI in SyncTrayzor
I had to modify the `config.xml` file of Syncthing to get SyncTrayzor to stop complaining. It thought it wasn't compatible with the version of Syncthing I had installed. I just modified the version on top from 37 to 35. That's just a temporary problem, and I hope it will be fixed soon. That file is located under `%userprofile%/appdata/local/Syncthing`:
![[How I synchronize and backup my Obsidian notes - syncthing version.png]]
Caption: Changing the Syncthing version temporarily to make it work with SyncTrayzor
Then, I created a folder in Syncthing to synchronize my Obsidian vault (still stored in Google Drive):
![[How I synchronize and backup my Obsidian notes - syncthing folder.png]]
Caption: The Syncthing synchronized folder
Next, I added a few ignore rules under "Ignore Patterns", which creates/updates an `.stignore` file at the root of the synchronized folder:
```
// Folders and files that Syncthing should ignore: https://docs.syncthing.net/users/ignoring.html
// Reference: https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Auxiliary+Tools/Syncthing
// WARNING: Syncthing does not synchronise this file (.stignore)
// During setup on a new device, create a copy of the .stignore file located under "50 Resources/"
// most important one. this keeps track of your open panes and files in the app
.obsidian/workspace
.obsidian/workspace.json
// vault stats are not useful
.vault-stats
// Ignore the Git repository
.git
// Smart connections embeddings
.smart-connections
// Metadata Extractor generates these automatically, so you shouldn't sync them
.obsidian/plugins/metadata-extractor/allExceptMd.json
.obsidian/plugins/metadata-extractor/metadata.json
.obsidian/plugins/metadata-extractor/tags.json
// Ignore the files versioned by Syncthing
.stversions
```
I followed the useful recommendations I found [here](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Auxiliary+Tools/Syncthing). I will probably have to update that ignore file from time to time. Since that file itself is not synchronized, by Syncthing, I have a manually created a copy of it in a sub-folder of my Obsidian vault (50 Resources). When I setup a new device, I just have to copy it manually to the root folder so that the same ignore rules are applied consistently everywhere.
In the settings of the synchronized folder, I have enabled File Versioning using the "Staggered File Versioning" option. I will experiment with this over time, but it's nice to know that I have synchronized versions of my files as well:
![[How I synchronize and backup my Obsidian notes - syncthing file versioning.png]]
Caption: File versioning configuration for the synchronized Syncthing folder
It stores all the file versions in the default `.stversions` folder that Syncthing creates at the root of the synchronized folder. Again, it's overkill, but hey, disk space is cheap nowadays π
I have then added that folder to the `.gitignore` file of my Obsidian vault, so that it's not backed up in my Git repository. I don't need to backup those versions, but I might change my mind later.
People have also mentioned the [Obsidian Syncthing Integration plugin](https://github.com/LBF38/obsidian-syncthing-integration), but I haven't tested that one.
LINK: https://obsidianstarterkit.com
### How I installed and configured Syncthing to sync my Obsidian vault on Android
I installed [Syncthing-Fork](https://github.com/Catfriend1/syncthing-android) on Android, which is available on the Play store. That version has a much lower impact on battery life, so I heavily recommend that one.
Then, I added my Windows PC as a device. One thing to know is that every device where Syncthing is installed gets a unique identifier that you need in order to sync from/to other devices. Those unique identifiers are GUIDs, so pretty long and boring to type. Luckily, Syncthing is able to generate and scan QR codes, so that's what I used. I went to `Devices > Add > Scan QR code` on the phone, and clicked on `Actions > Show ID` on the PC. The phone detected the PC, and I accepted the connection on both sides. Boom, connected! π
It worked directly because both devices were connected to my home's WiFi network.
![[2024-06-14 - Syncthing remote devices.png]]
Caption: Added the remote device in Syncthing
Then, I created an empty folder at the root of my phone's file system to store the synchronized files. Once done, I went back to the PC and shared the folder I created earlier with my Android phone by clicking on `Edit > Sharing`:
![[2024-06-14 - Syncthing shared folder to Android.png]]
Caption: Sharing the synchronized folder to another device
I then received a notification on my phone, and accepted the share:
![[2024-06-14 - Syncthing notification on phone.png]]
Caption: The Syncthing synchronization notification on Android
Finally, I configured Syncthing to use the folder at the root of my Android file system to store the files
![[2024-06-14 - Syncthing android folder.png]]
Caption: Syncthing-fork configuration for the synchronized folder
Then it started synchronizing immediately:
![[2024-06-14 - Syncthing synchronization.png]]
Caption: Syncthing doing its job
Once done, I copied the `.stignore` file I put in my Obsidian vault to the root, to make sure the same synchronization rules were applied.
Finally, I opened the folder as a vault in Obsidian π
![[synchronizing notes between machines.webp]]
Caption: Synchronizing notes across devices. Image generated using AI
### How I installed and configured Syncthing to sync my Obsidian vault on a Synology NAS
I installed the [Syncthing package for Synology](https://www.synology.com/en-global/dsm/packages/syncthing.net) by AndrΓ© Colomb, chose a solid password, and stored it securely. That's quite important because the NAS is available on the whole LAN, and I don't want anyone connecting to my network being able to do whatever they want...
I created a folder to store the synchronized files on my NAS, granting R/W access to the Syncthing user. I intentionally chose a folder that's automatically backed up to ensure that those will also be backed up to the cloud (more on this later).
Then, I shared the synchronized folder on my PC with the NAS as well:
![[2024-06-14 - Syncthing NAS shared vault.png]]
Caption: Sharing the synchronized folder with another device
Then, I accessed the Web UI of Syncthing on the NAS (port 8384), and accepted the share.
![[2024-06-14 - Syncthing NAS accept share.png]]
Caption: Accepting the share in the Syncthing Web UI on the NAS
And it started synchronizing as well. I love it when everything works on the first try! π
### How I installed and configured Syncthing on my Ubuntu Laptop
Last but not least, I also installed and configured Syncthing on my Ubuntu Laptop.
Since the version on the official Ubuntu repositories is quite old, I decided to use the official [Syncthing APT repository](https://apt.syncthing.net/). It included the necessary steps. Here's a copy, just for the sake of completeness:
```
# Add the release PGP keys:
**sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg**
# Add the "stable" channel to your APT sources:
**echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list**
# Update and install syncthing:
**sudo apt-get update
sudo apt-get install syncthing**
```
Then, once again, I created a local folder to store the synchronized files, ensured that Syncthing had R/W access to it, shared the folder on the PC to my Laptop, and accepted the share. This time around, I just created the folder as part of my home folder, which is also backed up with my laptop. So one more "backup" of sorts π
I also created and enabled a Systemd service running under my user by following [Syncthing's guide](https://docs.syncthing.net/users/autostart.html#using-systemd):
```
systemctl enable
[email protected]
systemctl start
[email protected]
```
And boom, notes synchronized everywhere I need πππ
![[sync notes between machines 01.webp]]
Caption: Synchronizing across Windows, Linux and mobile
### Obsidian Sync β the official alternative
If you don't already rely on Syncthing or another sync tool for other purposes, [Obsidian Sync](https://obsidian.md/sync) is worth serious consideration. It's the official synchronization service built by the Obsidian team, and choosing it directly supports further development of the app β which I think matters a lot for a tool this important.
It's a paid service (currently $4/month), but it delivers a lot:
- End-to-end encryption (AES-256)
- File versioning with the ability to go back in time
- Works offline and syncs when you're back online
- Works across all platforms
It's also significantly simpler to set up than what I described above β no config files, no ignore rules, no per-device tinkering.
I personally chose not to use it because I already rely on [Syncthing](https://syncthing.net/) for many other file synchronization needs and preferred to keep a single system. But if you're starting fresh, Obsidian Sync is an excellent and simpler option.
#### Obsidian Sync headless CLI
For more advanced use cases, [Steph Ango](https://stephango.com/) (Obsidian's CEO) released [obsidian-headless](https://www.npmjs.com/package/obsidian-headless), a CLI that runs Obsidian Sync without a GUI. Install and run it with:
```bash
# Run without installing
npx obsidian-headless /path/to/vault
# Or install globally
npm install --global obsidian-headless
obsidian-headless /path/to/vault
```
It supports three sync modes:
- **Bidirectional** (default): pushes and pulls changes in both directions
- **Pull-only**: only downloads from remote, ignores local changes
- **Mirror-remote**: only downloads from remote, reverts any local changes
This opens up use cases that go well beyond desktop sync:
- Automate remote backups
- Automate publishing a website
- Give agentic tools access to a vault without giving them access to your full computer
- Sync a shared team vault to a server that feeds other tools
- Run scheduled automations (e.g. aggregate daily notes into weekly summaries, auto-tag, etc.)
All of this while retaining the speed, privacy, and end-to-end encryption of Obsidian Sync.
## How I backup my Obsidian vault
Now the most important part. As I said, synchronized files are NOT backups. Here's how I create actual backups of Obsidian vault.
### How I backup my Obsidian vault locally
I create local backups using the [[Local backup plugin for Obsidian]]. I have configured it as follows:
![[How I synchronize and backup my Obsidian notes - local backup configuration.png|Local Backup plugin settings configuring frequency, retention, and backup folder]]
Caption: Obsidian Local backup configuration
Most important points:
- Backup history length (days): 0. No limit to the backup history (I use additional means to move older backups over to my NAS)
- Backups per day: 3. I could add more, but I don't feel a need to
- Windows output path: Adapt to your own needs. I store those on a separate disk for additional safety
- Linux output path: Same
- File name: `Seb-Backup-%Y_%m_%d-%H_%M_%S`. I use a clear naming convention. That one could be further improved, but it's good enough for my needs, given where I archive those
- Interval backups: Enabled. I want to have backups at regular intervals
- Backup frequency (minutes): 360. One backup every 6 hours. A shorter interval is annoying because it "blocks" Obsidian for longer and longer, as your vault grows. My backups are ~700MB at this point, and it takes a while to create those. I don't want to be regularly interrupted by the backup process
With those settings, my backups are created whether I run Obsidian on my Windows desktop or on my Linux laptop.
This is what my local backup folder looks like:
![[How I synchronize and backup my Obsidian notes - local backups.png]]
Caption: Local backups created by the Local Backup Obsidian plugin
I move older ones from time to time to my NAS, using a scheduled task. On my NAS, those files are backed up to the cloud with the rest of my important data.
This part is fully automated.
### How I backup my Obsidian vault using Git and GitHub
Git is a powerful versioning tool, perfect for text files, but which also works for binary files (e.g., images, PDFs, etc). My whole vault is also a Git repository that I synchronize to a private repos
tory on GitHub (a popular code hosting platform). To do this, I could use the [[Git plugin for Obsidian]], but also add/commit/push files manually from time to time.
I have created a private repository on GitHub, have cloned it on my machine, and moved the `.git` folder at the root of my vault. Then, I have created a `.gitignore` file:
```
# Ignore vault stats
.vault-stats
# Ignore Smart Connections folder
.smart-connections/
.smart-connections
# Ignore Syncthing versioned files
.stversions
```
For now, I just ignore the embeddings creating by the Smart Connections plugin, the files versioned by Syncthing, and vault stats. There's too much I push to Git and GitHub, but I don't care.
To synchronize my notes, I generally launch [[Gitkraken]] (my favorite Git GUI), and select whatever changes I want to save:
![[How I synchronize and backup my Obsidian notes - Git.png]]
Caption: Unstaged changed in my local Git repository
This enables me to create useful/informative commits, get a clear history of the changes I've made to my vault (e.g., new plugins, configuration changes, new or updated notes, folder structure changes, etc). I rely on this documentation to further improve my [Obsidian Starter Kit](https://obsidianstarterkit.com/).
LINK: https://obsidianstarterkit.com
![[How I synchronize and backup my Obsidian notes - git usage.png]]
Caption: Commit history for my Obsidian vault
Thanks to this, I have:
- A way to quickly see everything I have changed locally (and have synchronized to my other machines)
- A way to quickly rollback changes
- A way to quickly persist changes and backup those to GitHub
If I ever corrupt or lose everything, I can always clone my GitHub repository, and start from there.
An improvement here would be to fully automate this using the Git plugin for Obsidian, but I don't want to, because it would make it harder for me to review and apply the changes to the [Obsidian Starter Kit](https://obsidianstarterkit.com/)
LINK: https://obsidianstarterkit.com
### How I leverage the File Recovery feature of Obsidian
Obsidian has a powerful, but not so well known built-in file recovery feature. Through the [[File recovery core plugin for Obsidian]], [[Obsidian File Recovery]] automatically creates snapshots of your notes automatically and keep those for some time, depending on your configuration.
Here's how I have configured that plugin:
![[How I synchronize and backup my Obsidian notes - file recovery.png|File Recovery plugin settings: 5-minute snapshots retained for 365 days]]
With this, Obsidian automatically creates new snapshots every 5 minutes, and keeps those for a year. There are technical limitations on how much disk space those snapshots can use, and those may get lost (e.g., when there's not enough disk space available), so I don't really count on those, but they're still useful to have.
The [[File recovery core plugin for Obsidian]] exposes the "File recovery: Open local history" command that you can use to show a dialog like this to view and restore snapshots:
![[How I synchronize and backup my Obsidian notes - file recovery ui.png|Obsidian File Recovery dialog previewing an older snapshot of a note]]
Unfortunately, that user interface is pretty "weak", and I don't use it at all...
Instead, I've built and use the [[Time Machine plugin for Obsidian]], which makes it a breeze to see (and revert) the changes made between the current version of a note and past versions saved either by the [[Obsidian File Recovery]] system or by [[Git]] (if your vault is also a Git repository).
The [[Time Machine plugin for Obsidian]] provides a dedicated "Time Machine" view where you can navigate between snapshots of the currently active note, see the differences with the current version, restore previous versions, and also restore specific parts of previous versions.
Here's how it looks:
![[Time Machine plugin for Obsidian - example.png|Version History Diff plugin showing a snapshot diff with added and removed frontmatter lines]]
All of the snapshots and git commits are shown in a unified timeline that is easy to navigate and restore from.
### How I backup my Obsidian vault to my NAS using PowerShell
As I've explained earlier, my vault is synchronized to my NAS using Syncthing. In addition, I use a PowerShell script to move backups older than 30 days to my NAS. I could have used bash or python and a cron job on Linux, but since my main machine is on Windows, I prefered that approach. I didn't want to bother mounting my NAS folder using NFS within WSL...
Here's the script:
```
# Local and NAS backup directories
$localBackupDir = "D:\BACKUPS\Obsidian"
$nasBackupDir = "\\nas.local\backups_7\NotesSeb"
# Get the current date
$currentDate = Get-Date
# Get all the zip files in the local backup directory
$backupFiles = Get-ChildItem -Path $localBackupDir -Filter "Seb-Backup-*.zip"
# Loop through each backup file
foreach ($file in $backupFiles) {
# Extract the date and time from the filename
if ($file.Name -match "Seb-Backup-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})\.zip") {
#Write-Output "Processing file $($file.Name)"
$year = [int]$matches[1]
$month = [int]$matches[2]
$day = [int]$matches[3]
$hour = [int]$matches[4]
$minute = [int]$matches[5]
$second = [int]$matches[6]
# Date of that file (according to the file name!)
$fileDate = Get-Date -Year $year -Month $month -Day $day -Hour $hour -Minute $minute -Second $second
# Calculate the age of the file
$fileAge = $currentDate - $fileDate
# Check if the file is older than 30 days
if ($fileAge.Days -gt 30) {
Write-Output "Archiving the following file to the NAS: $($file.Name)"
# Move the file to the NAS directory
$destination = Join-Path -Path $nasBackupDir -ChildPath $file.Name
Move-Item -Path $file.FullName -Destination $destination -Force
Write-Output "Moved $($file.Name) to $nasBackupDir"
}
} else {
Write-Output "Filename $($file.Name) does not match expected pattern."
}
}
Write-Output "Backup files older than a month have been moved to the NAS."
```
That script sits at the root of my vault. That way, it also gets synchronized/backed up along with the rest ;-)
To avoid issues with file creation/modification times, I have decided to only trust the file names.
To run this script, I have created a simple scheduled task that runs daily at noon. Here's how it is configured:
- Run powershell: `powershell.exe`
- Arguments: `-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File ./Archive-Old-Windows-Backups.ps1`
- Start in: `%userprofile%/My Drive/Notes/Seb` (i.e., root of my vault, where the PowerShell script lies)
- Settings
- Allow task to be run on demand
- Run task as soon as possible after a scheduled start is missed
To be honest, this approach is far from ideal, because it implies a lot of manual work to set it all up again in case my machine crashes. Even with backups, that's too tedious... A better alternative would be to script the whole setup. It's not that hard to do.
With the above, I already have multiple copies of my Obsidian vault on the NAS. Two are synchronized copies (copy of Google Drive + copy Synchronized by Syncthing), thus not that reliable, and the above, which ensures I can go back in time if needed.
### How I backup my Obsidian vault to Backblaze in the cloud
My NAS is configured to backup my most important files to [Backblaze](https://www.backblaze.com/), a popular cloud backup solution. In there, I have created a number of buckets to store my backups. I use the one below to store my notes, among other things:
[[How I synchronize and backup my Obsidian notes - backblaze buckets.png]]
Caption: Backblaze bucket
Those buckets are actually Amazon S3 buckets underneath, and can be accessed through the same old Amazon S3 APIs. This means that they are compatible with many tools, including some packages on the Synology NAS.
On Backblaze, I have also created application keys to access those buckets. Those used by the backup tool on the NAS:
![[How I synchronize and backup my Obsidian notes - backblaze app keys.png]]
Caption: Application key in Backblaze
I could further lock down the permissions, but the scope of each bucket is very limited.
On the Synology NAS, I have installed the [Hyper Backup](https://www.synology.com/en-global/dsm/feature/hyper_backup) application of Synology, which supports S3 backups, and thus Backblaze. I have created a backup job that uploads and versions my notes to Backblaze:
![[How I synchronize and backup my Obsidian notes - synology backups.png]]
Caption: Synology backups
That backup job also encrypts the data using a key that I've stored securely and backed up separately, because... you never know! The job runs every night, and regularly checks the integrity of the files. I have also enabled backup rotation using the following configuration:
![[How I synchronize and backup my Obsidian notes - backup rotation on NAS.png]]
Caption: Backup rotation for my NAS backups
So basically, I can go way back in time with that... And that's my last resort if everything else fails...
I have tested the restore system a dozen times already (mainly checking in to ensure it still works), but I've never faced an actual disaster. Fingers crossed!
What I haven't detailed here is that I also use [Synology Cloud Sync](https://www.synology.com/en-global/dsm/feature/cloud_sync) to synchronize files I store in the cloud with my NAS, and then back those up to Backblaze. This protects me against platform risks (e.g., having my Google Drive account blocked/banned for some reason).
![[sync notes to the cloud.webp]]
Caption: Notes backed up to the cloud. Image generated using AI
And with all that, I didn't even mention the backups of my different devices. Anyways, you get the point. My data is SAFE.
## Conclusion
In this article, I've covered the most important points about how I synchronize and backup my Obsidian vault and notes. By now, it should be obvious that this stuff is quite important to me, and I'm not kidding. I have local, network and cloud backups, and I synchronize my notes on various devices π. Hopefully though, this will give you some ideas about how to approach this for yourself.
The one thing I want to leave you with is that you should really care about properly backing up your notes. That is, if you are actually writing valuable notes, which I hope you do. And if you don't, the please go read my other articles about [Knowledge Management](https://www.dsebastien.net/tag/personal-knowledge-management//), because you're clearly missing out.
That's it for today! β¨
LINK:
- [[The Ultimate Beginner's Guide to Obsidian (Article)]]
- https://www.dsebastien.net/the-ultimate-beginners-guide-to-obsidian//
LINK:
- [[The Reasons I'll Never Switch from Obsidian to Tana (Article)]]
- https://www.dsebastien.net/the-reasons-ill-never-switch-from-obsidian-to-tana//
LINK:
- [[How I manage books and summaries in Obsidian (Article)]]
- https://www.dsebastien.net/how-i-manage-books-and-summaries-in-obsidian//
LINK:
- [[In Defense Of Using Fewer Tools (Article)]]
- https://www.dsebastien.net/in-defense-of-using-fewer-tools//
LINK:
- [[Obsidian Starter Kit]]
- https://www.store.dsebastien.net/product/obsidian-starter-kit
## References
- [Syncthing setup guide for Obsidian, PC and Android](https://snippets.page/posts/sync-obsidian-notes-between-pc-and-android-with-syncthing/)
- [Running SyncThing at startup using a scheduled task](https://docs.syncthing.net/users/autostart.html#run-at-user-log-on-or-at-system-startup-using-task-schedule)
- [Syncthing ignore recommendations for Obsidian](https://publish.obsidian.md/hub/02+-+Community+Expansions/02.05+All+Community+Expansions/Auxiliary+Tools/Syncthing)
- [Syncthing package for Synology](https://www.synology.com/en-global/dsm/packages/syncthing.net)
- [Syncthing-Fork](https://github.com/Catfriend1/syncthing-android)
- [Syncthing APT repository](https://apt.syncthing.net/)
- [Syncthing's guide to create a Systemd service](https://docs.syncthing.net/users/autostart.html#using-systemd)
- [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
- [Google Drive](https://www.google.com/drive/)
- [Backblaze](https://www.backblaze.com/)
- [Synology Hyper Backup](https://www.synology.com/en-global/dsm/feature/hyper_backup)
- [Synology Cloud Sync](https://www.synology.com/en-global/dsm/feature/cloud_sync)
- [Obsidian documentation about backups](https://obsidian.md/help/Getting+started/Back+up+your+Obsidian+files)
- [obsidian-publish-downloader script](https://github.com/Saghetti0/obsidian-publish-downloader)
- [Obsidian Sync](https://obsidian.md/sync)
- [obsidian-headless npm package](https://www.npmjs.com/package/obsidian-headless)
## Related
- [[Syncthing]]
- [[Git]]
- [[GitHub]]
- [[Local backup plugin for Obsidian]]
- [[Git plugin for Obsidian]]
- [[Obsidian File Recovery]]
- [[File recovery core plugin for Obsidian]]
- [[Time Machine plugin for Obsidian]]
- [[Never Lose a Note Again β Time Machine Plugin for Obsidian (Article)]]
- [[Winget]]
- [[Obsidian Sync]]
- [[Steph Ango]]
## Promotion
### Post 1 - Short (sync β backup hook)
```
Syncing your notes is NOT a backup. π¨
Delete a note β gone everywhere.
Corrupt a file β corrupted everywhere.
Here's my full Obsidian sync + backup setup:
https://www.dsebastien.net/how-i-synchronize-and-backup-my-obsidian-notes//
```
### Post 2 - Short (File Recovery reveal)
```
Most Obsidian users don't know about File Recovery π€―
It auto-creates snapshots every 5 min and keeps them for a year.
I use my Time Machine plugin to browse + restore them easily π
https://www.dsebastien.net/how-i-synchronize-and-backup-my-obsidian-notes//
```
### Post 3 - Short with list (backup stack overview)
```
My Obsidian backup stack (updated π₯):
β€ Syncthing across devices
β€ Git + GitHub (private repo)
β€ Local backup plugin (every 6h)
β€ File Recovery (snapshots)
β€ NAS + Backblaze for cloud
Full guide π
https://www.dsebastien.net/how-i-synchronize-and-backup-my-obsidian-notes//
```
### Post 4 - Short (Time Machine plugin)
```
Obsidian's built-in File Recovery UI is weak π
That's why I built the Time Machine plugin.
Browse snapshots + Git commits in a unified timeline. See diffs. Restore with one click.
https://www.dsebastien.net/how-i-synchronize-and-backup-my-obsidian-notes//
```
### Post 5 - Thread (deep dive)
```
1/
How I protect my Obsidian vault from data loss π§΅π
Sync is NOT enough. Here's my full layered system:
---
2/
Syncing β backup.
Delete a note β deleted everywhere.
Corrupt a note β corrupted everywhere.
You need REAL backups. Here's how I do it:
---
3/
Layer 1: Local backups πΎ
The Local Backup plugin creates zip snapshots every 6 hours. I keep 30 days locally, then archive older ones to my NAS automatically with a PowerShell script.
---
4/
Layer 2: Git + GitHub π
My entire vault is a private Git repo. I use GitKraken to commit and push to GitHub. I can see exactly what changed and roll back anything.
---
5/
Layer 3: Obsidian File Recovery πΈ
Most people don't know this exists. It auto-snapshots every note every 5 minutes and keeps them for up to a year.
---
6/
Layer 4: Time Machine plugin β°
The built-in File Recovery UI is weak. My Time Machine plugin shows snapshots + Git commits in a unified timeline. Diff, restore, done.
---
7/
Layer 5: NAS + Backblaze βοΈ
Local backups flow to my NAS. Synology Hyper Backup uploads everything to Backblaze nightly, encrypted and rotated.
---
8/
Full setup guide (updated with File Recovery + Time Machine):
https://www.dsebastien.net/how-i-synchronize-and-backup-my-obsidian-notes//
---
9/
Want a solid Obsidian system from day one?
My Obsidian Starter Kit has you covered π https://obsidianstarterkit.com
---
10/
And if you want weekly tips on PKM, Knowledge Work, and AI:
π https://www.dsebastien.net/newsletter/
```