david dominguez 😺

Homelab - Syncthing

Mar 03, 2026

What I needed

So, Obsidian has this great notebook solution and I use it for many things including day-to-day notes, mine especially holds a lot of my old study notes, as well as many of these posts (they originally were meant as internal notepad/sketchpad types of notes, but some have now evolved outward).

Anyways, to use Obsidian, I found out two things quickly:

I checked the directory structure of Obsidian, just to check out what the actual content was behind it, how it was being read, etc., and quickly discovered it’s just a bunch of markdown. So I quickly thought to myself β€œwell, my notebook will not be big enough for me to ever notice the size, so I might as well take advantage and just manage the syncing myself across devices”.

Lo and behold, this was how I discovered Syncthing.

What is Syncthing

Syncthing is what I use to synchronize my files between my laptop (my thonkpad), my gaming computer(s), and my off-site server.

It allows me to focus on modifying the files in their respective areas (i.e. music, notes, ebooks), without the need to worry about actually transferring the information back and forth, or leaving it up to another provider to charge me more.

How it Works

Below is a very high level ASCII representation of how it works, with the process showing an update in my notes as an example in this case. I won’t get into the weeds of how it works at a network level on this post, but feel free to send me a message if you want more info and we can dive in detail, together.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        SYNCTHING MESH NETWORK                           β”‚
β”‚                                                                         β”‚
β”‚   [thonkpad]            [off-site server]         [gaming computers]    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ πŸ“ music β”‚           β”‚ πŸ“ music     β”‚          β”‚ πŸ“ music         β”‚  β”‚
β”‚  β”‚ πŸ“ notes │◄─────────►│ πŸ“ notes     │◄────────►│ πŸ“ notes         β”‚  β”‚
β”‚  β”‚ πŸ“š ebook β”‚           β”‚ πŸ“š ebooks    β”‚          β”‚ πŸ“š ebooks        β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  STEP 1 β€” I edit a note on thonkpad
  ──────────────────────────────────────

  [thonkpad]
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ πŸ“ notes/                β”‚
  β”‚   note-2026.md           β”‚  ← file modified
  β”‚                          β”‚
  β”‚  Syncthing detects       β”‚
  β”‚  change via              β”‚
  β”‚  filesystem watcher      β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


  STEP 2 β€” thonkpad announces the change
  ────────────────────────────────────────

  [thonkpad] ── "I have a newer version of notes/note-2026.md" ────►  peers


  STEP 3 β€” Peers pull the updated blocks
  ────────────────────────────────────────

                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€   [off-site server]   β”‚
              β”‚   requesting   β”‚   πŸ“ notes/ (syncing) β”‚
              β”‚   file blocks  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚
  [thonkpad] ◄─
              β”‚
              β”‚   requesting   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              └─────────────────  [gaming computers]   β”‚
                  file blocks  β”‚   πŸ“ notes/ (syncing) β”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

       Only the *changed blocks* of the file are transferred,
       not the entire file.


  STEP 4 β€” Sync complete 
  ──────────────────────────

  [thonkpad]            [off-site server]       [gaming computers]
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ πŸ“ notes β”‚          β”‚ πŸ“ notes     β”‚        β”‚ πŸ“ notes         β”‚
  β”‚  βœ… up   β”‚          β”‚  βœ… up       β”‚        β”‚  βœ… up           β”‚
  β”‚  to date β”‚          β”‚  to date     β”‚        β”‚  to date         β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

       music and ebooks remain untouched as only notes were changed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

There’s a GUI!

Luckily, managing this is pretty straightforward, as there is a GUI. I’ve attached a screenshot below as the example from my thonkpad.

thonkpad gui

The key areas you’ll want to take a note of if you’re trying it yourself:

How can you use it?

Syncthing is an open source application available for Linux, Windows, Android, and iOS. I would encourage you try it out with Obsidian, but you can truly try it with any file/directories you want to sync across multiple devices.

What Syncthing is NOT