Want a resilient, “just works” way to mirror a folder across a few tiny single-board computers (SBCs) using cheap USB sticks? Syncthing is a great fit: peer-to-peer, encrypted, and light enough for ARMv7 boards like the NanoPi NEO. This guide wires up three nodes (node1, node2, node3) to continuously sync a folder living on USB keys mounted at /mnt/backup/node-storage.
TL;DR: mount the USB as the
syncthinguser (exFAT/NTFS needuid,gid), run Syncthing as a dedicated service user, enable Ignore Permissions on the folder, share the folder between devices, done.
Why Syncthing?
- Peer-to-peer: no central server; any node can be offline intermittently.
- Efficient: block-level deltas, compression; QUIC and TCP transports.
- Simple ops: Web UI, systemd units, no external DB.
- Secure: TLS 1.3 by default; device identity via public keys.
Prerequisites
- 3× Debian 12 ARM boards (e.g., NanoPi NEO).
- A USB mass-storage device per node, mounted at
/mnt/backup(often exFAT on USB sticks). - Shell access as root (or sudo).
- (Optional) Tailscale for easy private networking.
We’ll sync: /mnt/backup/node-storage.
Step 1 — Install Syncthing & create a service user (each node)
```bash
apt update
apt install -y syncthing
Dedicated service user (no login shell)
id -u syncthing >/dev/null 2>&1 || useradd -m -s /usr/sbin/nologin syncthing
Start persistent per-user service
loginctl enable-linger syncthing
systemctl enable --now syncthing@syncthing
systemctl status syncthing@syncthing --no-pager
No comments yet. Be the first to share your thoughts!