×

App 2 – Immich

Immich is a self-hosted photo and video management service that allows you to backup and manage your media yourself.

The service has a Google-Images style interface and even has a machine-learning module that is really good at facial-recognition, allowing you to search for photos of people regardless of which album the photo is stored in.

Immich

As well as the main self-hosted service, Immich has a couple of add-ons, such as the app for your mobile device so that you can auto-backup to your server as well as your chosen cloud provider. There is also an Immich frame so you can display your best photos as a slideshow.

Immich mobile app

The service has a set of tools that allow you to create albums, identify people in photos and group them together, show geo-tagged photos on a map, identify and remove duplicate photos, generate thumbnail images, extract image metadata, transcode videos, and much more

Immich “jobs”
Geo-located images

The docker image I used is found here: https://github.com/immich-app/immich

The docker compose.yml file consists of 4 separate services:

  • The immich-server
  • The immich-machine-learning service
  • The redis service (a fast in-memory database)
  • The immich-postgres sql database

Examining the compose.yml file we can see how the service is configured:

As with other compose files, this file declares the name of the container, and which image to pull to use to build the service. This file also defines some volumes including one which identifies where your files are placed when you upload them – The actual location is defined in a separate .env (environment) file which we will look at below.

You can also see that the service has some dependencies – in this case the redis and database containers.

The .env file contains a set of variables used by the containers – some compose.yml files include an environment section, others, such as this use an .env file instead.

This environment file includes the path the to one of my external drives I mounted for the purpose of storing my data as well as the credentials used for the postgres database.

Next up – the Immich Photo-Frame