Immich screenshot
#13 B+ Rank #54

Immich

A self-hosted Google Photos replacement with mobile auto-backup and ML-powered face/object search. Standout trait is genuinely solid engineering across a real microservice architecture, at the cost of heavier ops.

Media TypeScript/Dart Hard to deploy $20/mo equiv
76.0 / 100

βš™ Full Stack

NestJS API server, a separate ML microservice for face/object recognition (Python), Redis for job queues, Postgres with pgvector for metadata and embeddings, and a Flutter mobile app.

πŸ“ˆ Scaling Analysis

The API and ML services are independently horizontally scalable, but Redis job queues and the shared photo-library volume are the practical bottlenecks; pgvector search also gets expensive at very large libraries without tuned indexing.

πŸš€ Running on Nexlayer

Needs a multi-pod layout: immich-server, immich-ml, a postgres pod (postgres.pod:5432 with pgvector), and a redis pod (redis.pod:6379), all sharing a PVC for the photo library. Official images are on GHCR, and any Docker Hub base layers should mirror via mirror.gcr.io.