User Tools

This is an old revision of the document!


Immich

Immich is a modern photo management web application which aims to be similar to Google Photo. I use it to backup my phone photos and also manage my older collection of older photos of when i was using physical cameras. Since a bit, it also support external libraries which is a good point for my use case.

There are alternatives, like [[sailing:librephotos|LibrePhotos], which i tried too. Currently i prefer Immich over LibrePhotos because it feels faster and just works better overall, since Immich added support for external libraries, it fit my bills.

Still both projects do not support “base_url” making it annoying to self-host on reverse proxy with subdomain, but since there are no alternatives…

Another annoying limit of Immich is the lack of SSO support. I didn't find a proper way to support tools like Authelia nor pass Proxy authentication to Immich.

Installation

I tried to install Immich on bare-metal and give up. The total lack of documentation is regretting and the only existing guide is obsolete. Sadly, using containers is the only viable way to install Immich.

Create a folder where to store the various yaml files:

 > mkdir /data/daemons/immich

Fetch the .env file and the yaml files:

 > cd /data/daemons/immich
 > wget 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
 > wget https://github.com/immich-app/immich/releases/latest/download/hwaccel.yml

Now, edit your docker-compose.yml to add support for external libraries. Add the following line:

    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - ${EXTERNAL_PATH}:/usr/src/app/external

both to immich-server and immich-microservices. Please note that you cna have more than one mount, ideally one for each folder tree that contains photos you want to add as external library to Immich.

edit the /data/daemons/immich/.env file to adapt at least your Uploads and external folder:

UPLOAD_LOCATION=/data/Media/Photos/Uploads
EXTERNAL_PATH=/path/to/your/external/photos/trees
IMMICH_VERSION=release

then fire up the containers:

 > docker compose up -d

When you want to update Immich, just:

 > cd /data/daemons/immich
 > docker compose pull && docker compose up -d

NGINX reverse proxy

Immich does not support bas_url, so:

immich.conf
location /immich {
        auth_pam off;
         return      301 http://$host:2283/;
}

The following setup is recomended if you can host on root:

immich.conf
    location / {
        proxy_pass http://<snip>:2283;
        proxy_set_header Host              $http_host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
 
        # http://nginx.org/en/docs/http/websocket.html
        proxy_http_version 1.1;
        proxy_set_header   Upgrade    $http_upgrade;
        proxy_set_header   Connection "upgrade";
        proxy_redirect off;
    }

you need also to disable authentication.

First usage

Fire up your browser at http:<server ip>:2283 and follow instructions. To add external libraries, it's currently (Immich 1.92.1) a bit convoluted. First you need, as administrator, to go to each user settings (under administration panel) and add the external path as specified in the docker compose (ex: /usr/src/app/external) then, as specific user, you also need to add an external library and repeat the same path in your user settings. It's confusing, i think this will be improved in future releases. === Command line CLI === Immich has a CLI qhich requires NPM: <code bash> > emerge nodejs </code> as root: npm i -g @immich/cli as une user: immich login-key http://127.0.0.1:2283/api [apiKey] immich upload –recursive directory/

Last modified:

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information