User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
sailing:immich [2024/01/11 10:05] willysailing:immich [2024/02/22 13:39] (current) – removed willy
Line 1: Line 1:
-====== Immich ====== 
- 
-[[https://immich.app/|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... 
- 
-Immich seems capable of supporting OAuth solitions, will add more specific setup here later on. 
- 
- 
-===== 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: 
-<code bash> 
- > mkdir /data/daemons/immich 
-</code> 
- 
-Fetch the .env file and the yaml files: 
-<code bash> 
- > 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 
-</code> 
- 
-Now, edit your **docker-compose.yml** to add support for external libraries. Add the following line: 
-<code> 
-    volumes: 
-      - ${UPLOAD_LOCATION}:/usr/src/app/upload 
-      - /etc/localtime:/etc/localtime:ro 
-      - ${EXTERNAL_PATH}:/usr/src/app/external 
-</code> 
-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: 
-<code> 
-UPLOAD_LOCATION=/data/Media/Photos/Uploads 
-EXTERNAL_PATH=/path/to/your/external/photos/trees 
-IMMICH_VERSION=release 
-</code> 
- 
-then fire up the containers: 
-<code bash> 
- > docker compose up -d 
-</code> 
- 
-When you want to update Immich, just: 
-<code bash> 
- > cd /data/daemons/immich 
- > docker compose pull && docker compose up -d 
-</code> 
- 
-==== NGINX reverse proxy ==== 
- 
-Immich does not support bas_url, so: 
- 
-<file txt immich.conf> 
-location /immich { 
-        auth_pam off; 
-         return      301 http://$host:2283/; 
-} 
-</file> 
- 
-The following setup is recomended if you can host on root: 
-<file txt 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; 
-    } 
-</file> 
- 
-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/ 
- 
- 
  

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