How to Self-Host Your Photo Library with Immich

Immich offers a genuinely capable self-hosted alternative, replicating much of what makes cloud photo services convenient while keeping your actual phot…

Immich

Google Photos and iCloud make photo backup effortless, but that convenience comes with your entire photo library living on someone else’s servers, subject to storage limits, subscription costs, and policies you don’t control. Immich offers a genuinely capable self-hosted alternative, replicating much of what makes cloud photo services convenient while keeping your actual photos on hardware you own.

What Is Immich?

Immich is a free, open-source, self-hosted photo and video backup solution with mobile apps for automatic backup, closely mirroring the Google Photos experience — automatic upload from your phone, facial recognition, object detection, and a fast, modern web interface for browsing your library.

Why Consider Self-Hosting Photos Specifically

  • No storage subscription costs – once you’ve invested in your own storage , there’s no recurring monthly fee tied to photo storage specifically
  • Full control over your data – no risk of policy changes, account suspension, or service discontinuation affecting access to years of personal photos
  • Privacy – your photos and the metadata extracted from them (faces, locations, objects) stay entirely within your own infrastructure
  • No arbitrary compression – full-resolution originals stored exactly as captured, without the compression some free cloud tiers apply

Installing Immich with Docker Compose

Immich’s official installation uses Docker Compose with several interconnected services:

mkdir immich-app && cd immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Edit the .env file to set your desired upload storage location and database credentials, then start the stack:

docker compose up -d

Understanding the Component Services

Immich’s Docker Compose setup includes several services working together: the main server handling the API and web interface, a machine learning service powering facial recognition and object detection, a PostgreSQL database storing metadata, and Redis for caching — all coordinated automatically by the provided Compose file without needing manual configuration of each piece individually.

Accessing the Web Interface

Once running, access Immich at:

http://your-server-ip:2283

Complete the initial account setup, creating your administrator account.

Installing Mobile Apps

Immich provides official apps for both iOS and Android, available through their respective app stores. After installing, point the app at your server’s address and log in with your account, then enable automatic backup to have new photos upload continuously, just as you would with a commercial cloud photo service.

Configuring Storage

By default, Immich stores uploaded photos in a directory defined in your .env file, which you should point at truly reliable storage — ideally a ZFS or Btrfs-backed dataset benefiting from data integrity checksums, given how irreplaceable most personal photo libraries actually are.

Enabling Facial Recognition and Object Detection

Immich’s machine learning features run automatically once photos are uploaded, though initial processing of a large existing library can take considerable time and CPU resources depending on your hardware. Monitor resource usage during this initial processing period using the monitoring tools covered in earlier guides (Netdata, in particular) to understand the actual load involved.

Sharing Albums

Immich supports creating shared albums accessible to other users or via public links, useful for sharing specific photo collections with family members without granting access to your entire library.

Backing Up Your Immich Instance

Given how irreplaceable most photo libraries really are, Immich deserves the full 3-2-1 backup treatment () — regular backups of both the actual photo storage directory and the PostgreSQL database containing all your metadata, albums, and facial recognition data, ideally including a real off-site copy given the emotional and practical value of the data involved.

Migrating from Google Photos or iCloud

Immich includes import tools capable of bulk-importing an exported photo library (via Google Takeout or Apple’s data export tools), preserving original timestamps and, where available, existing album organization during the transition to self-hosted storage.

Final Thoughts

Setting up Immich for self-hosted photos brings real feature parity with commercial cloud photo services — automatic mobile backup, facial recognition, fast browsing — while keeping your actual photo library entirely under your own control. Given how irreplaceable personal photos typically are, pairing Immich with the reliable storage and thorough backup practices covered elsewhere in this series makes it one of the most actually rewarding self-hosted services to run.

Related Posts

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *