What

http://immich.app

Self-hosted photo and video management solution.

Easily back up, organize, and manage your photos on your own server. Immich helps you browse, search and organize your photos and videos with ease, without sacrificing your privacy.

Setup

Stack config: https://github.com/one137/dockerhost-stacks/blob/main/stacks/50-immich.yml.

Note UPLOAD_LOCATION points directly to a host folder and is mounted to /data in the container. It is currently set to /mnt/photos-nas/immich-library, an NFS mount from TrueNAS (see Network Shares for auto-mounting shares).

It is possible to create multiple users, so that the whole family can use the same service without access to each others’ private photos.

The server is only accessible only when connected to the LAN or VPN, which is fine (better) for me, but may need looser permissions if others start to use it regularly.

Migration from iOS

Migrated my full iOS library to Immich (feelsgoodman).

Used more or less this approach, with heavily customized options (not saved unfortunately, and my macOS system on which I did it is no more).

Currently storing > 15’000 photos and videos (> 100 GB).

Companion Mobile App

My workflow

  • The idea is that photos are either
    • in my native iOS library (backed up on iCloud) Temporary
    • in my homelab’s Immich library Permanent
    • – never on both
  • So I set up Immich to backup my whole iOS library, but with backup disabled
  • Every once in a while, when I have sorted all my new photos (mainly removed those I don’t want to keep, plus optionally shared and edited them):
    • I open the Immich app and toggle Backup on, wait for it to sync everything to the Homelab (few seconds)
    • Toggle backup off again
    • Then remove all photos from the iOS library (which removes them from iCloud as well, after 30 days)

This creates a manual step (just one minute a month), but allows to edit and share photos from the native app, which is slightly easier than through Immich, and to treat Immich as a final store, with no garbage/temporary photos.