What is Immich?

Immich is a self-hosted photo and video backup tool. It is a free and open-source application that is heavily inspired by Google Photos. Immich integrates photo and video storage with a web portal and mobile app. It includes features such as libraries, automatic backup, bulk upload, partner sharing, Type sense search, facial recognition, and reverse geocoding.

 

 

How to install Immich on Debian?

 

Immich runs on docker and since that is the case before you can install Immich you need to install docker and here is how in Debian 12.

 

Before you can install Docker Engine, you need to uninstall any conflicting packages (You may or may not have these packages installed) :

$ for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

 

Now you need to setup the apt repository

# Add Docker's official GPG key:

sudo apt-get update

sudo apt-get install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

 

# Add the repository to Apt sources:

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \

  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

 

After all the steps to add the repository are done, you can now install the latest docker with the following command:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

Now it’s time to install Immich , and for that you are going to use docker compose and  for that you need to download some files and edit them.

 

First start by creating a immich directory and enter it:

$ mkdir ./immich-app

$ cd ./immich-app

 

Download docker-compose.yml and example.env, either by running the following command

$ 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

 

If you have a graphics card like Nvidia or 9th Gen Intel CPU for example, you can also download these optional files to improve performance

$ wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml

 

$ wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml

 

Before you can execute docker compose you need to edit the .env file and populate UPLOAD_LOCATION and DB_PASSWORD

$ vi .env

 

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

 

# The location where your uploaded files are stored

UPLOAD_LOCATION=/EXAMPLE_LOCATION

 

# The Immich version to use. You can pin this to a specific version like "v1.71.0"

IMMICH_VERSION=release

 

# Connection secret for postgres. You should change it to a random password

DB_PASSWORD=MY_SUPER_SECRET_PASSWORD_FOR_DB

 

# The values below this line do not need to be changed

###################################################################################

DB_HOSTNAME=immich_postgres

DB_USERNAME=postgres

DB_DATABASE_NAME=immich

 

REDIS_HOSTNAME=immich_redis

 

Now you can run docker compose, but make sure you are inside the directory we created earlier

$ sudo docker compose up -d

 

During this process you will see Immich being installed in docker and after it’s finished you can check the status of the installation

$ sudo docker stats

 

 

CONTAINER ID   NAME                      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS

4e613baff987   immich_server             0.03%     184.4MiB / 7.678GiB   2.35%     211MB / 44.5MB   136MB / 350MB     12

5d3dde67da6d   immich_microservices      0.22%     199.2MiB / 7.678GiB   2.53%     543MB / 1.28GB   281MB / 33.4MB    12

1ed0abeb1e5e   immich_machine_learning   0.14%     758.4MiB / 7.678GiB   9.65%     31.3MB / 217kB   1.43GB / 0B       11

d61cd6ce4c4d   immich_postgres           0.05%     242.8MiB / 7.678GiB   3.09%     633MB / 407MB    928MB / 3.65GB    23

dddac7ffb294   immich_redis              0.25%     11.93MiB / 7.678GiB   0.15%     654MB / 164MB    20.9MB / 2.03GB   5

 

 

If something similar to these appears Immich is installed

 

Post install steps

 

1 - Register the admin user

The first user to register will be the admin user. The admin user will be able to add other users to the application.
To register for the admin user, access the web application at 
http://<machine-ip-address>:2283 and click on the Getting Started button.

2 – Create a new user (Optional)

If you have friends or family members who want to use the application as well, you can create additional accounts for them.

In the Administration panel, you can click on the Create user button, and you'll be presented with the following dialog:

You can then set an initial password. If you'd like, you can use an easy password like password, and keep the setting Require user to change password on first login active. This will prompt the user to change their password on first login, to a password that they choose.

3 – Storage template

The admin user can set the template by using the template builder in the Administration -> Settings -> Storage Template. Immich provides a set of variables that you can use in constructing the template, along with additional custom text. If the template produces multiple files with the same filename, they won't be overwritten as a sequence number is appended to the filename.

Default template

Year/Year-Month-Day/Filename.Extension

If you want to change the storage template during the initial setup, first enable the feature.

Then, customize your storage template.

 

 

4 – Download the Mobile App

The mobile app can be downloaded from the following places:

 

5 – Login to the Mobile App

Login to the mobile app with the server endpoint URL at http://<machine-ip-address>:2283

 

 

6 – Backup your library

Navigate to the backup screen by clicking on the cloud icon in the top right corner of the screen.

You can select which album(s) you want to back up to the Immich server from the backup screen.

Scroll down to the bottom and press "Start Backup" to start the backup process

 

For more information, please refer to: Immich and Docker(Debian).