My local-first photo workflow (Immich + Syncthing + rclone)
Description and use
Migrating 50,000+ photos from Google Photos to a local stack using Immich, Syncthing, and rclone provides full data ownership, no AI training, and cost savings of about $220 over 18 months.
Problem
Migrating 50,000+ photos and videos from Google Photos to a self-hosted stack that preserves data ownership, avoids AI training, and reduces cost.
Outcome
The migration delivers full data ownership, eliminates AI training, and reduces annual cost to ~$220 over 18 months compared to ~$150 for Google Photos, while maintaining cross-device access and reliable backups.
Workflow
- 1. Install Synology DS220+ with 8TB RAID 1 storage.
- 2. Deploy Immich via Docker Compose, mounting /volume1/photos as read-only external library.
- 3. Configure Syncthing on each phone to sync photos to /volume1/phone-backup/
<partner>/ on the NAS. - 4. Run a cron job to move new files from phone-backup into Immich’s upload directory.
- 5. Set up rclone with a crypt remote to sync /volume1/photos to Backblaze B2 weekly.
- 6. Use Immich iOS/Android apps or web UI for viewing, editing, and sharing.
- 7. Maintain cost and privacy by avoiding Google’s paid plans and AI features.
Evidence
After 4 years on Google Photos, I migrated everything to a self-hosted setup that gives me similar features with full data ownership.
Total cost: $5/month Backblaze + the NAS I already owned. After 18 months: $90 total. Versus $100+/year to Google.
I tried all three. PhotoPrism is beautiful but slow on a Celeron. Face recognition took 3 days to scan my library.
Syncthing is more reliable: Runs in background on both iOS and Android (via Syncthing-Fork / Möbius Sync).
Encrypted client-side (crypt remote in rclone config). B2 only sees ciphertext. Cost: ~$1.50/month for 280GB.
- Record date: 2026-10-19T21:41:03.275Z