The challenge
What the system needed to solve
Keep personal photos and owned media accessible across devices while protecting metadata, originals, thumbnails, and recovery paths differently.
The build
Engineering decisions
Deployed redundant Immich server and machine-learning services with highly available PostgreSQL and cache dependencies.
Separated irreplaceable originals, application metadata, generated derivatives, and re-downloadable caches by storage and backup policy.
Added Jellyfin with automatic recovery to GPU-capable nodes for efficient playback of personally managed media.
Verified backup manifests and restore paths instead of relying on application-reported success alone.
Architecture
How the pieces connect
- 1Mobile and browser clients
- 2Authenticated media services
- 3Replicated metadata and cache
- 4Bulk originals storage
- 5Independent backup verification
Results
What changed
- Personal media remains available across node maintenance and service restarts.
- Irreplaceable originals and rebuildable derivatives no longer share the same recovery assumptions.
- GPU placement, database health, storage capacity, and backup age are visible in operations dashboards.
