From Smarmelling · · 3 min
Building a Free, Self-Hosted 3-2-1 Backup System
A detailed journey through setting up a zero-cost backup workflow across Linux, Windows, iOS, and Android using open-source tools.
In brief
A detailed journey through setting up a zero-cost backup workflow across Linux, Windows, iOS, and Android using open-source tools. Live file synchronization is not a true backup; reliable data safety requires separate automated snapshots stored locally and offsite. Originally reported by Smarmelling.
Fixing broken personal backup systems
Setting up seamless file storage is notoriously finicky. Building a reliable, self-hosted sync setup prevents unexpected data loss when equipment fails.
“Creating storage and syncing it is one of those activities where something is always off, doesn't work like you want, and is not working at the time when you need it.”
Refusing recurring cloud subscription fees
Paying monthly storage fees just to access personal files is unnecessary. A robust infrastructure can be built entirely using existing hardware and free tools.
“I had no interest in giving any more money to any provider to just be able to see my own files.”
Adopting the classic 3-2-1 strategy
The 3-2-1 rule demands three total copies of data across two different media types, with at least one stored offsite.
“3-2-1 backup means storage should be in: THREE copies, on TWO different storage media, with ONE copy offsite.”
Structuring the three storage layers
The backup architecture divides into an active working layer, a physical external hard drive, and a free cloud provider for offsite recovery.
“This post will go in detail on the choices I made for each of these layers.”
Establishing the local ground truth
A primary Linux mini-PC acts as the central hub. A single core folder named Sync in its home directory contains all essential curated files.
“My main Minisforum mini-pc holds the ground truth of the files, and acts as the daily driver.”
Syncing across local devices automatically
Syncthing replicates files from the primary PC to an always-on secondary mini-PC functioning as a home NAS.
“This is then synced via Syncthing to my second mini-pc, a GMKtec M3 that acts as my NAS and is always on.”
File sync is not backup
Live synchronization copies deletions and file corruption instantly across all connected nodes. True backups require distinct snapshot layers.
“Importantly syncthing is not back-up.”
Managing low mobile phone storage
Phone storage constraints prevent syncing entire folders locally. Curating a lightweight 12GB primary dataset helps fit essential data across systems.
“The size of Sync is actually fairly small for me, it's just 12GB, but it's not small enough to fit on my 128GB phone.”
Accessing files remotely on iOS
Connecting Tailscale with Runestone allows viewing remote files directly on an iPhone over a secure network without storing them locally.
“The disadvantage of this is that you need a Tailscale connection all the times you want to access the files, but other than that it works wonders.”
Wrestling with Android file access
Viewing remote files on Android requires chaining Tailscale, Total Commander's LAN plugin, and markdown apps like Acode in a clunky chain.
“This meant I had to create an insane workaround that is as ugly as it is fragile.”
Evaluating cross-platform syncing tools
Tailscale and Syncthing perform exceptionally well, while mobile file access remains surprisingly painful across modern mobile operating systems.
“In all of this my takeaway was: Tailscale is the true king; syncthing is amazing; iOS is better than I remembered; Android has gotten almost as bad as Windows.”
Choosing local backup file systems
Though ext4 offers technical advantages, keeping a local hard drive on FAT32 or exFAT ensures smooth cross-platform compatibility across operating systems.
“I had to default instead to exFAT which was slightly superior than FAT32 but vastly inferior than ext4.”
Automating local snapshots with Restic
Setting up Restic with systemd timers creates weekly encrypted, deduplicated snapshots, reducing 12GB of raw files down to 6GB.
“It created a nice compressed, encrypted folder that has all the information. And then I set up a systemd to back up the Sync folder every week on Sunday night.”
Leveraging free cloud tiers
Clearing out unnecessary emails reclaims over 10GB of free space on Google Drive, creating enough room for an offsite backup copy.
“The simplest seemed Google Drive. You get 15GB for free and it has good ways to connect to traditional ways to back up information.”
Bridging mobile photos into sync
Photos move from iOS into the central Sync folder using PhotoSync, ensuring media propagates out to local backup drives and cloud storage.
“I created a folder inside of Sync called Photos and used PhotoSync to do the rest.”
Overcoming cloud backup API bottlenecks
Running Restic over network mounts to Google Drive triggers rate limits and HTTP latency timeouts, making automated remote snapshotting unreliable.
“It stalled a number of times because of too many request and http latency so I had to start splitting bakcup requests in subfolders of Sync .”
Fallback to simple remote archives
Uploading a zipped archive via rclone to Google Drive offers a simple, reliable offsite option that circumvents complex backup software failures.
“I zipped the Sync folder from my daily driver and copied that through the rclone Google Drive instance.”
Preserving configuration dotfiles on GitHub
Tool configurations for Neovim and Linux environments are managed with chezmoi and backed up to GitHub for instant machine recovery.
“Configs are pretty important since I have spent some time on them by now and would not like to have all that progress be lost”
Navigating email backup challenges
Email archiving remains a difficult challenge to automate systematically without cluttering local directories or consuming offsite cloud limits.
“One of the other materials that I could not figure out how to back up properly is emails.”
Protecting Arch Linux system state
Installing Timeshift creates system restore points on Arch Linux, allowing rapid rollback whenever system updates break hardware drivers or settings.
“I installed and set up Timeshift for this but I haven't really played around with it other than the basic config”
Balancing perfection and practicality
Building custom backup stacks involves constant compromises between automated elegance and robust, zero-cost pragmatic stability.
“In this whole procedure there were something things that worked extremly well and some where I had to compromise or give up entirely”
The short version
Live file synchronization is not a true backup; reliable data safety requires separate automated snapshots stored locally and offsite.






