How I Built a Private, Self-Hosted Document Sync Network Using Syncthing
| filed under: thinkpad-fleet, privacy, workflow, backup-strategy, file-sync, digitalocean, linux, syncthing, cloud-alternative, self-hostingBut I had one persistent problem:
How do I keep one Documents folder seamlessly up to date across all these scattered machines — without Dropbox, Google Drive, iCloud, or any third-party storage?
I don’t need cloud storage for everything. I don’t need shared team drives. I don’t need real-time co-editing in a browser. I just want all of my laptops to show me the same, clean, current Documents folder wherever I go.
The solution turned out to be elegant, lightweight, encrypted, and much smarter under the hood than it looks on the surface.
This is the story — and the architecture — of how I built it.
My Weird but Perfectly Valid Use Case
Most people think about sync in terms of:
- Shared folders with coworkers
- Centralized backups in the cloud
- Multi-user document edits
- Cross-platform collaboration
- Huge media libraries (photos, videos, audio)
That’s not my world.
My working set is tiny by modern standards. My entire Documents folder lives comfortably under 7 GB, even when I temporarily drop in a huge client .tgz archive. My day-to-day life is:
- Text files, HTML, Markdown
- Spreadsheets and simple databases
- Client docs, contracts, proposals
- PDFs and web-ready images
I also don’t live on “one main laptop.” I live on:
- A W520 on the desk
- An X220 in one bag
- An X220 in another bag
- An X220 in a shoulder bag
- Other X220s that get rotated into service
These machines are basically terminals for my work, not precious snowflake “devices” with their own personalities. I want them to be interchangeable.
What I needed was:
- One canonical
Documentstree - Automatically mirrored across multiple laptops
- Working over random networks (home, cafés, library, travel)
- Private, encrypted, and not owned by a SaaS provider
That is exactly the niche Syncthing fills.
The Tool: Syncthing
The engine of this whole setup is Syncthing, an open-source, peer-to-peer file synchronization tool.
Syncthing is:
- Encrypted – all traffic is protected with TLS and device-level keys
- Peer-to-peer – devices sync directly with each other when possible
- Decentralized – there is no central “cloud copy” unless you explicitly create one
- Cross-platform – runs on Linux, Windows, macOS, Android, and via third-party clients on iOS
- Open-source – you can inspect the code and run it on your own infrastructure
What Syncthing actually does is surprisingly sophisticated:
- It discovers your devices (via local network, global discovery servers, or custom relays).
- It establishes secure, authenticated connections using device IDs and keys.
- It compares the state of each shared folder across devices.
- It syncs changes at the block level (differential sync), not just whole files.
- It handles conflicts and can keep multiple historical file versions.
On the surface, it looks like a simple “geeky rsync replacement.” Under the hood, it’s a very smart distributed system that has spent years solving all the gnarly edge cases of file syncing: conflicts, partial transfers, temporary disconnects, intermittent connectivity, and more.
That “smartness” is crucial for my use case. I want to be able to:
- Edit a document on my desk machine.
- Leave the house with an X220 and continue working somewhere else.
- Come back, open the W520, and trust that everything is exactly where I left it.
And I want that to happen without babysitting it, manually copying files, or thinking about which machine has the “real” version.
Why Syncthing Is Smarter Than It Looks
Syncthing’s web UI and CLI look simple and utilitarian, which is part of the charm. But conceptually, it’s doing a lot more than:
“Copy folder A to folder B and hope for the best.”
Some of the ways it quietly saves you from pain:
- Block-level syncing: If you change part of a big file, it only syncs the changed blocks, not the whole file.
- Versioning: You can keep older versions of files when they’re changed or deleted, which is a lifesaver if you mess something up.
- Conflict handling: If two devices change the same file at the same time, Syncthing doesn’t silently overwrite; it writes a conflict file so you can reconcile.
- Resilient to flaky networks: It picks up where it left off if a connection drops mid-sync.
- Device-level trust: You explicitly approve each device into the cluster; nothing connects “by accident.”
It’s not a dumb file copier. It’s a mature, battle-tested syncing engine with a lot of hard problems already solved so you don’t have to think about them.
The Relay: A Small DigitalOcean Droplet
Syncthing can work entirely peer-to-peer on a local network, but my machines are rarely all on the same LAN. One is at home, one is at Starbucks, one is in a library, one is sleeping in a backpack. They need a reliable way to find each other across the public internet.
To make that seamless, I spun up a small Linux VPS on DigitalOcean:
- 1 GB RAM
- 1 vCPU
- 25 GB SSD
- About $6/month for the droplet + about $1.80/month for backups
Here’s the key concept:
The droplet is not a storage server. It’s a relay and discovery node.
It’s not there to hold my files. It’s there to:
- Run Syncthing 24/7 in a data center
- Help my devices discover each other reliably
- Provide a stable, public endpoint that laptops can reach from anywhere
- Act as a relay if direct peer-to-peer connections aren’t possible
All actual file data still flows between my devices. The server just acts like an always-available “meeting point” where they can handshake and negotiate connections.
DigitalOcean’s pricing scales roughly like this:
- $4/month → 10 GB SSD
- $6/month → 25 GB SSD (what I use right now)
- $12/month → 50 GB SSD
- $18/month → 60 GB SSD
- $24/month → 80 GB SSD
- $48/month → 160 GB SSD
Because I’m only syncing a sub-10 GB working set and I’m not using the server for actual file storage, the $6/month tier is perfect. If you intend to store large volumes of data on the server itself (true “cloud backup”), the costs ramp up — and you might want a different design.
How My Setup Actually Works Day to Day
1. The W520 at the Desk
At home, my W520 is the main “desk terminal.” When I power it on:
- Linux Mint starts.
- Syncthing runs automatically as a user service.
- It contacts the DigitalOcean node and announces:
“I’m online. Here’s my device ID. Here’s my view of theDocumentsfolder.”
If no other devices are online, nothing happens. Syncthing just quietly watches the folder for changes.
2. An X220 in a Bag, Somewhere Out in the World
Later, I grab an X220 from a bag and go to a café. When I boot it:
- Linux Mint starts.
- Syncthing auto-starts in the background.
- It talks to the DigitalOcean relay, which says, in effect:
“Cool, let me introduce you to the W520 back home.” - The two machines compare their
Documentstrees and sync differences.
Everything that changed on the W520 shows up on the X220; anything I add or modify on the X220 gets queued to sync back.
3. Coming Back Home
When I return home and wake the W520, Syncthing once again talks to the relay, sees that the X220 has updates, and syncs in the other direction. The end result is boring in the best way:
Documentson the W520 matchesDocumentson the X220.- No drama, no manual copying, no USB drives.
- I never have to remember “which machine has the good version.”
That’s the whole point: less mental overhead, more “just open the laptop and work.”
How You Can Build Something Similar
This isn’t a detailed installation guide, but here’s a high-level blueprint.
- Sign up for a VPS provider (I used DigitalOcean) and create a small Linux VPS (like a 1 GB / 25 GB droplet).
- Install Syncthing on that VPS and configure it to run as a systemd service under a non-root user.
- On your laptop(s), install Syncthing:
- On Linux, it’s in most package managers.
- On Windows and macOS, you can download installers from the Syncthing site.
- On Android, Syncthing has a mobile app.
- On iOS, you can use an app like Mobius Sync.
- On each laptop, add your
Documentsfolder as a Syncthing folder and give it a consistent folder ID (e.g.,documents). - Pair each laptop with the VPS by exchanging device IDs and approving them on both sides.
- Share the
Documentsfolder from your “primary” laptop to the VPS, then from the VPS to your other laptops. - Enable versioning on the laptops if you want to keep historical copies (e.g., 10 old versions).
- Configure Syncthing to start automatically on user login on each device.
After that, you mostly forget about it. You just live your life. Open laptop A, work. Open laptop B, work. The Documents folder follows you.
A Prompt You Can Use with ChatGPT (or Any AI Assistant)
If you want an AI to walk you through a version of this tailored to your exact setup, you can paste something like this:
I'm running [Linux Mint / Ubuntu / Windows 11 / macOS / etc] and I want to use Syncthing plus
a small VPS (like DigitalOcean) to keep my Documents folder synced across multiple devices.
I don't want to use cloud storage for everything; I just want private, encrypted sync. Please: 1. Give me step-by-step instructions to: - Install Syncthing on my VPS and run it as a service - Install Syncthing on my local machine(s) - Pair the devices securely using device IDs - Share and sync my Documents folder between them - Enable versioning and basic safety settings 2. Explain how to make this work on: - Linux (desktop/laptop) - Windows - macOS - Android - iOS (e.g. Mobius Sync) 3. Include any security best practices: - Not exposing the Syncthing UI publicly - Using firewalls - Keeping the VPS updated 4. Assume I'm comfortable copying and pasting commands but I want explanations too.
That will usually get you a pretty solid, personalized how-to.
Platforms: It’s Not Just a Linux Thing
I happen to be all-in on Linux Mint on my ThinkPads, but Syncthing’s reach is broader:
- Linux: Native packages and systemd integration.
- Windows: Easy installer and autostart options.
- macOS: Native builds and menu bar helpers.
- Android: Mobile app that can sync folders on your phone or tablet.
- iOS: Via third-party clients like Mobius Sync.
So even if you’re not a ThinkPad hoarder with a pile of 2011-era machines, the same pattern applies: you can build your own private sync mesh across whatever devices you actually use.
Why I’m Stuck (Happily) in the X220/W520 Era
Everything above is about the tool and the architecture. Now, the “stupid hardware” part.
People sometimes look at my stack and ask why I’m still running laptops from 2011–2012. The short answer:
The industry moved to chiclet keyboards and sealed ultrabooks, and I opted out.
The moment Lenovo ditched the classic 7-row ThinkPad keyboard for flat, short-travel chiclets, I mentally froze my personal hardware timeline. I don’t want:
- Chiclet keys with no travel
- Butterfly mechanisms
- Glued batteries and soldered RAM
- Non-serviceable machines that fight you for opening them
- Glossy screens and fashion-laptop vibes
I want:
- Classic sculpted ThinkPad keyboards
- Matte displays
- RAM slots, not solder
- Removable SSDs and batteries
- Machines I can open with a screwdriver, not a heat gun
That’s why I live on X220s and a W520.
Practically, it also makes economic sense. I can:
- Buy an X220 on eBay for around $130
- Drop in 16 GB of RAM (the BIOS handles it even though the spec sheet says 8 GB)
- Swap the SSD for a 500 GB or 1 TB Samsung
- Install Linux Mint from a thumb drive
In under an hour, I have what feels like a brand new (to me) productivity box that I actually want to type on.
The W520 is the big sibling: officially “maxed” at 16 GB but happy with 32 GB in practice, tons of ports, and still more than enough for text, code, and web work.
Over time, my plan is:
- Slowly upgrade every X220 and the W520 to at least 500 GB SSDs (1 TB where it makes sense)
- Use tools like BleachBit to clear out junk and keep the installs lean
- Rely on Syncthing so that all these machines act like interchangeable terminals with the same
Documentsview
I also use other tools — Basecamp, Google Drive, Dropbox, etc. — for client sharing, collaboration, and traditional backup. But this whole Syncthing setup is about something more narrow and precise:
Making sure that wherever I sit down, whichever ThinkPad I open, my working brain lives in the same Documents folder.
Conclusion
What I ended up building is not a general-purpose backup solution or a team collaboration platform. It’s something smaller, tighter, and more personal:
- A private, encrypted, self-hosted sync mesh
- Powered by Syncthing and a tiny DigitalOcean droplet
- Designed specifically for a fleet of aging-but-perfect ThinkPads
- Focused only on one thing: keeping my
Documentsfolder identical everywhere
Because Syncthing is smarter than it looks, because the DigitalOcean node is cheap and stable, and because my data footprint is small, this architecture hits a sweet spot:
- Low cost
- Low friction
- High privacy
- High reliability
And most importantly: it gives me back mental space. I don’t think about where files live anymore. I just open a laptop and work.
Glossary
- Syncthing
- Open-source, encrypted, peer-to-peer sync tool used to keep folders identical across devices.
- Relay / Discovery Node
- A server (in this case, a DigitalOcean droplet) that helps Syncthing devices find and connect to each other securely.
- Droplet
- DigitalOcean’s term for a virtual private server (VPS) instance.
- X220
- A 2011-era ThinkPad laptop with a classic keyboard, great repairability, and support (unofficially) for 16 GB of RAM.
- W520
- A 2011-era ThinkPad workstation-class laptop capable of handling up to 32 GB of RAM.
- Documents folder
- The primary folder I sync across all devices; it contains my active work: text, docs, spreadsheets, PDFs, and related files.
- Diff / Differential Sync
- The process of sending only the changed portions of files, rather than resending entire files, to save bandwidth and time.
- Versioning
- Syncthing’s ability to keep multiple historical versions of files when they’re changed or deleted.
FAQ
Q: Why not just use Dropbox, Google Drive, or iCloud?
They’re great tools, but they solve a different problem. I don’t need a huge cloud drive — I need lightweight, private, device-to-device sync for a very small working set, with no vendor lock-in and full control over the infrastructure.
Q: Does the DigitalOcean server store your files?
No. It runs Syncthing as a relay/discovery node. It helps devices find each other and build encrypted tunnels, but my actual Documents live on my laptops, not as a canonical “cloud copy” on the VPS.
Q: What happens if a laptop is offline for weeks?
Nothing dramatic. When it reconnects, Syncthing compares its view of the folder with the rest of the cluster and syncs the differences. It doesn’t matter how long it was asleep.
Q: What about file corruption or conflicts?
Syncthing is designed to handle conflicts explicitly by creating conflict copies when two devices edit the same file incompatibly. It also supports versioning, so you can keep a configurable number of past versions. In my single-user workflow, it’s been rock solid.
Q: Can this be used on macOS and Windows too?
Yes. Syncthing runs on Linux, Windows, and macOS. Android and iOS (via apps like Mobius Sync) can also participate in the mesh. The same architectural pattern applies across all of them.
Q: Is this secure?
Yes, if you follow basic best practices. Syncthing uses TLS, device IDs, and key-pair verification. Devices must be explicitly approved. You should avoid exposing the Syncthing GUI directly to the public internet, keep your VPS updated, and use firewalls sensibly, but the core protocol is designed with security in mind.

