RepoDaily · 2026-07-06 · Self-hosted app

Immich: Self-Hosted Photo and Video Management Without Cloud Lock-In

#11 Self-hosted app TypeScript +475 immich-app/immich Open repository

A high-performance media library you run on your own hardware — with mobile backup, face and CLIP search, shared albums, and an AGPL v3 license.

Repo typeSelf-hosted app
Best forPeople who want full ownership of their photo and video library without recurring cloud subscription fees or vendor lock-in
Risk levelMedium — functionally mature at v3.0.1, but requires Docker proficiency and ongoing self-hosted maintenance
Time to evaluate15 minutes with the public demo; 1–2 hours for a local Docker deployment

Primary question: Do you have a server (or NAS) and willingness to maintain a self-hosted media service for your photos and videos?

88/100

RepoDaily adoption score

RepoDaily rates this as 88/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
100Evidence quality

5 source(s) across 4 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

6 workflow step(s), 6 next-action step(s), and 3 command/install signal(s) were detected.

63Maintenance confidence

Trending momentum is +475 stars, with maintenance/release/issue signals counted when present.

91Production readiness

Risk is marked medium, with 5 security note(s) and 3 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 4 alternative(s), and 3 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

66Agent / AI fit

3 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

Immich is a self-hosted photo and video management application built primarily in TypeScript. The repository at immich-app/immich is structured as a monorepo — declared in package.json as "immich-monorepo" version 3.0.1, type module, private true — managed with pnpm 11.6.0. Rather than paying a monthly fee to store photos on someone else's servers, Immich lets you run the entire stack on a machine you control: a home server, a NAS, or a cloud VM.

The feature matrix in the README is specific about platform parity. Both mobile and web clients support uploading and viewing photos and videos, preventing duplicate assets, multi-user access, shared albums, raw format support, EXIF and map metadata display, and search by metadata, objects, faces, and CLIP embeddings. The mobile app adds auto-backup on app launch, selective album backup, and background backup. The web client adds administrative user management, API keys, and 360-degree image display.

Immich is licensed under the GNU Affero General Public License v3 (AGPL v3), meaning the source code must remain open even when the software is offered as a network service. A public demo is available at demo.immich.app with credentials demo@immich.app / demo. The mobile app can connect to the demo by entering that URL as the Server Endpoint URL. The README also includes a prominent warning to follow a 3-2-1 backup strategy, indicating the project takes data-loss risk seriously but places responsibility on the operator.

Problem it solves

  • Commercial cloud photo services (Google Photos, iCloud, Amazon Photos) charge recurring fees that scale with storage and lock media behind proprietary platforms
  • Exporting years of photos from a cloud provider is slow, often strips metadata, and may not preserve album structure
  • Privacy-conscious users may not want facial recognition or object classification running on third-party infrastructure
  • Self-hosted alternatives like basic NAS galleries or Synology Photo Station often lack features like CLIP-based semantic search or LivePhoto/MotionPhoto playback

How it works

  1. Deploy the Immich server stack on your hardware using Docker — installation requirements and guides are at docs.immich.app/install/requirements
  2. Create user accounts through the web administrative interface (admin functions are web-only per the README feature matrix)
  3. Install the Immich mobile app and point it to your server's URL as the Server Endpoint URL
  4. Select which device albums to back up; the app uploads assets in the background and prevents duplicates automatically
  5. The server indexes metadata, runs face detection and CLIP embedding generation, and makes assets searchable by content, faces, objects, and EXIF data
  6. Browse and share photos through the web UI or mobile app, including shared albums with other users on the same server

Product demo and interface preview

Immich Screenshots
Immich Screenshots — Official README visual showing the Immich interface across mobile and web clients, including the photo timeline and search views. README.md image

Try-It Path: Demo and Local Setup

The fastest way to evaluate Immich is the public demo at https://demo.immich.app. Log in with email demo@immich.app and password demo. For the mobile app, enter https://demo.immich.app as the Server Endpoint URL. This lets you test face search, object search, EXIF metadata, and shared albums without deploying anything.

For a local deployment, the documentation site (built with Docusaurus) provides installation requirements at docs.immich.app/install/requirements. The monorepo uses pnpm 11.6.0 as its package manager — package.json specifies an engine constraint of pnpm >= 10.0.0. Developers working on the docs can run `pnpm install` then `pnpm run start` inside the docs directory for live preview. Developer setup guides are at docs.immich.app/developer/setup, with Devcontainer support at docs.immich.app/developer/devcontainers.

Deployment Notes: Monorepo Structure and Tooling

  • Root package.json declares the project as "immich-monorepo" version 3.0.1, type "module", private true
  • Package manager pinned to pnpm@11.6.0 with engine floor pnpm >= 10.0.0
  • Root-level scripts are limited to `format` and `format:fix`, which run Prettier against the i18n/ directory — internationalization strings are managed at the monorepo root
  • Documentation site is a Docusaurus static site: `pnpm run build` outputs to the build directory; deploy to GitHub Pages with `USE_SSH=true pnpm run deploy`
  • Architecture and database migration details are documented at docs.immich.app/developer/architecture

Maintenance Risk: Feature Freezes and Contribution Policy

  • CONTRIBUTING.md states that pull requests should do exactly one thing; larger or impactful changes should be discussed first in the Discord #contributing channel
  • The project does not accept LLM-generated pull requests — CONTRIBUTING.md explicitly asks contributors not to open them
  • Two areas are under active feature freeze: Sharing/Asset ownership and (External) libraries — feature PRs targeting these areas will be closed even if highly requested
  • Translations are managed through Weblate at hosted.weblate.org/projects/immich, entirely community-driven
  • The project collects public datasets at datasets.immich.app to improve ML models; contributors can submit photos from smartphones, DSLRs, and action cameras including panoramas, burst photos, and photo spheres

Who should pay attention?

Good fit if

  • You already run a home server, NAS, or always-on VM and want to consolidate family photos in one place you control
  • You want mobile auto-backup without a recurring cloud subscription
  • You need semantic search over your photo library — faces, objects, CLIP embeddings — running on your own hardware
  • You are comfortable with Docker-based deployments and SSH-based server administration

Skip for now if

  • You have no server hardware and no interest in maintaining one
  • You need a turnkey commercial SLA or phone-in support
  • Your primary use case is professional RAW photo editing — Immich views raw formats but is not a digital asset management editor like Lightroom

Risks and cautions

Medium

Immich is functionally mature at version 3.0.1 with comprehensive docs and a working demo, but operating it requires Docker proficiency and ongoing maintenance attention.

  • Self-hosted deployment means you are responsible for backups, updates, and security patches
  • The README explicitly warns users to follow a 3-2-1 backup strategy — the project takes data-loss risk seriously but cannot prevent it for you
  • Feature freezes on Sharing/Asset ownership and External libraries mean those capabilities will not change until the freeze lifts
  • ML features (face detection, CLIP search) require CPU or GPU resources that may strain low-power devices like a Raspberry Pi
  • AGPL v3 license ensures source code remains open and available even when the software is offered as a network service — a modified server must publish its source
  • OAuth support is available on both mobile and web clients, allowing integration with external identity providers
  • API keys are available on the web client for programmatic access without sharing user passwords
  • Multi-user support with administrative user management (web-only) lets you control who can access the server
  • The 3-2-1 backup warning in the README signals that the project expects users to implement their own redundancy rather than relying on Immich alone

Alternatives to compare

ApproachWhen to useTrade-off
Google Photos
You want zero setup, unlimited convenience, and deep Android integrationSubscription via Google One, scaled to storage tier
PhotoPrism
You want an open-source alternative with strong facial recognition and a mature web UIFree self-hosted (AGPL v3); paid managed instance available
Your photo library is part of a broader file-sync and collaboration platformFree self-hosted; enterprise support available from Nextcloud GmbH
Lychee
You want a lightweight open-source photo gallery with less ML overheadFree self-hosted

What this trend reveals

Family Photo Consolidation Without Vendor Lock-In

With multi-user support, shared albums, and mobile auto-backup on both iOS and Android, Immich can replace a household Google Photos subscription. The AGPL v3 license means no entity can close-source a fork offered as a service.

Spin up the demo at demo.immich.app, create a shared album, and test mobile auto-backup against a local Docker instance with 100+ photos.

Semantic Search Over a Private Media Archive

Immich indexes faces, objects, and CLIP embeddings — enabling natural-language search queries like 'sunset at the beach' without sending photos to a third-party API. This is differentiating compared to basic file-system galleries or NAS stock photo apps.

Upload 500 diverse photos to a test instance and evaluate search relevance across faces, objects, and natural-language queries.

ML Model Improvement via Public Datasets

The project collects community-submitted datasets at datasets.immich.app to improve detection accuracy. Contributors with panoramas, burst photos, and photo spheres from varied devices can directly influence model quality.

Review the dataset submission guidelines at datasets.immich.app and submit device-diverse test images that expand training coverage.

Best next action

Test the Demo, Then Deploy a Docker Instance

Start with the zero-commitment demo to verify the UI and search quality match your expectations. If the feature set fits, deploy Immich on your own hardware using the official installation guide and configure mobile auto-backup for one device.

  1. Visit https://demo.immich.app and log in with demo@immich.app / demo
  2. Install the Immich mobile app and connect it to the demo server URL
  3. Review installation requirements at docs.immich.app/install/requirements
  4. Deploy Immich on your server using Docker
  5. Configure auto-backup for one device album and verify uploads complete without duplicates
  6. Test face, object, and metadata search on your own uploaded photos

RepoDaily verdict

Immich at version 3.0.1 is one of the most feature-complete self-hosted photo management solutions available under AGPL v3. The combination of mobile auto-backup, semantic search via faces, objects, and CLIP embeddings, multi-user shared albums, raw format support, and LivePhoto/MotionPhoto playback positions it as a direct replacement for commercial cloud photo services — provided you are willing to operate, update, and back up your own server.

Sources