2026-08-11
Self-Hosted Photo Platform
Replaced a cloud photo library with Immich on a Proxmox VM, backed by ZFS snapshots, replication, and segmented home-network access.
- Proxmox
- Immich
- ZFS
- OPNsense
- VLANs
Self-Hosted Photo Platform
I wanted the convenience of a Google Photos-style mobile experience without giving up ownership of my photo library. The result is an Immich deployment running in my Proxmox homelab, with ZFS providing the storage safety net and OPNsense handling network segmentation.
Architecture
- Immich runs in its own virtual machine so photo processing does not compete directly with camera recording workloads.
- The library uses a dedicated ZFS dataset with its own quota and snapshot schedule.
- Proxmox provides the virtualization layer and keeps the application environment separate from the storage system.
- OPNsense VLANs and firewall rules limit how the service can reach the rest of the home network.
- ZFS send/receive provides replication to a second pool on separate physical disks.
Why this design
Photos are difficult to replace, so the storage layer matters as much as the application. Snapshots give me a quick rollback point before upgrades. Checksums help detect silent corruption. Replication adds protection beyond a single pool, while an off-site copy covers the risks that local redundancy cannot.
Keeping Immich separate from Frigate was also a deliberate capacity decision. Thumbnail generation, machine-learning tagging, and facial recognition are bursty workloads; isolating them makes the system easier to reason about when backups, updates, and camera recording happen at the same time.
Result
The system gives me automatic phone uploads, search, face grouping, and a familiar browsing experience while keeping the primary library on infrastructure I control. The tradeoff is maintenance: I read release notes, snapshot before updates, and treat backups as an ongoing system rather than a one-time configuration.