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
Immoich does not support bas_url, so:
- immich.conf
location /immich { auth_pam off; return 301 http://$host:2283/; }
Immich has a CLI qhich requires NPM:
> emerge nodejs
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/