Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Immich docker self-hosted google photos setup

Featured Replies

  • Community Expert

br0 network should be strictly avoided unless absolutely necessary.

There is almost zero need for it except for running a dns server like pihole as well as a reverse proxy on the same machine.

All other docker containers should remain using bridge network OR a custom docker network.

  • 2 weeks later...
  • Replies 218
  • Views 108.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • gottoesplosivo
    gottoesplosivo

    What I did was actually following the instructions that you linked, and it seems to be working.     OPTIONAL: Create a db back up just in case. Change the values in brackets with the

  • Espressomatic
    Espressomatic

    I don't think so. When you update the container, it'll already include any necessary changes. There are breaking changes all the time, and if you're maintaining your own compose and config files, then

  • Mattaton
    Mattaton

    @mbc0 So, it looks like you have made the GPU available to the container, but you also need to turn on GPU acceleration in the Immich settings. Also, imagegenius recently changed how the AIO

Posted Images

Hey, i have issue where a lot of images seem to be flagged as duplicate even if they are not, so they dont get uploaded. It is not a small amount, around 600, so i cant edit all of them a bit and the upload them so that hash is different.

Is there a way to turn off the duplicate detection?

  • Community Expert
33 minutes ago, pera_perkan said:

Hey, i have issue where a lot of images seem to be flagged as duplicate even if they are not, so they dont get uploaded. It is not a small amount, around 600, so i cant edit all of them a bit and the upload them so that hash is different.

Is there a way to turn off the duplicate detection?

kinda...

https://www.reddit.com/r/immich/comments/1c63ryv/immich_duplicate_finder/

To disable duplicate detection in Immich, you can adjust the Maximum detection distance setting in System Settings under Administration > Settings > Machine Learning Settings > Smart Search. A higher value will detect more duplicates, while a lower value will detect fewer. You can also disable machine learning entirely, which will also disable duplicate detection, under Administration > Settings > Machine Learning Settings.

Detailed Steps:

Access Administration Settings: Log in to your Immich server and navigate to Administration > Settings.

Locate Machine Learning Settings: Navigate to Machine Learning Settings, specifically under Smart Search.

Adjust Maximum Detection Distance: Find the "Maximum detection distance" setting. This controls how closely images need to match to be considered duplicates.

A lower value (e.g., 0.001) will be less sensitive and detect fewer duplicates, but may also reduce false positives.

A higher value (e.g., 0.1) will be more sensitive and detect more duplicates, but may also lead to false positives.

Disable Machine Learning (Optional): If you want to disable duplicate detection completely, you can disable all machine learning features or specific models like Smart Search. You can do this under Administration > Settings > Machine Learning Settings.

Disabling machine learning will also disable other features like smart search and facial recognition, impacting the Explore page and search functionality.

Save Changes: Make sure to save your changes after adjusting any settings.

Alternative: Disable the entire machine learning service (advanced):

To prevent the machine learning service from starting at all, you can comment out the immich-machine-learning section in the docker-compose.yml file.

This will disable Smart Search, Face Detection, and Duplicate Detection tasks.

If you do this, you'll need to manually retry any tasks that rely on these features by clicking the "Missing" button on the Job Status page.

image.png

On 6/8/2025 at 9:28 PM, bmartino1 said:

kinda...

https://www.reddit.com/r/immich/comments/1c63ryv/immich_duplicate_finder/

To disable duplicate detection in Immich, you can adjust the Maximum detection distance setting in System Settings under Administration > Settings > Machine Learning Settings > Smart Search. A higher value will detect more duplicates, while a lower value will detect fewer. You can also disable machine learning entirely, which will also disable duplicate detection, under Administration > Settings > Machine Learning Settings.

Detailed Steps:

Access Administration Settings: Log in to your Immich server and navigate to Administration > Settings.

Locate Machine Learning Settings: Navigate to Machine Learning Settings, specifically under Smart Search.

Adjust Maximum Detection Distance: Find the "Maximum detection distance" setting. This controls how closely images need to match to be considered duplicates.

A lower value (e.g., 0.001) will be less sensitive and detect fewer duplicates, but may also reduce false positives.

A higher value (e.g., 0.1) will be more sensitive and detect more duplicates, but may also lead to false positives.

Disable Machine Learning (Optional): If you want to disable duplicate detection completely, you can disable all machine learning features or specific models like Smart Search. You can do this under Administration > Settings > Machine Learning Settings.

Disabling machine learning will also disable other features like smart search and facial recognition, impacting the Explore page and search functionality.

Save Changes: Make sure to save your changes after adjusting any settings.

Alternative: Disable the entire machine learning service (advanced):

To prevent the machine learning service from starting at all, you can comment out the immich-machine-learning section in the docker-compose.yml file.

This will disable Smart Search, Face Detection, and Duplicate Detection tasks.

If you do this, you'll need to manually retry any tasks that rely on these features by clicking the "Missing" button on the Job Status page.

image.png

Thanks, i did not see that option at all. This did fix the issue

  • 4 weeks later...
On 4/16/2025 at 10:22 PM, russdyer77 said:

Are others having issues just getting the WebUI to load? 

 

I have another container on 8080 so changed the WebUI port to 8079 (or anything else) and it won't load.  When looking at the log, everything looks good. 

 

text  error  warn  system  array  login  

Connection to localhost (127.0.0.1) 2283 port [tcp/*] succeeded!
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, DELETE} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RoutesResolver] TimelineController {/api/timeline}:
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/timeline/buckets, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/timeline/bucket, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RoutesResolver] TrashController {/api/trash}:
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/trash/empty, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/trash/restore, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/trash/restore/assets, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RoutesResolver] UserAdminController {/api/admin/users}:
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, DELETE} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/restore, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RoutesResolver] UserController {/api/users}:
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me/license, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me/license, PUT} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/me/license, DELETE} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/:id, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, POST} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, DELETE} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/users/:id/profile-image, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RoutesResolver] ViewController {/api/view}:
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/view/folder/unique-paths, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:RouterExplorer] Mapped {/api/view/folder, GET} route
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:NestApplication] Nest application successfully started
[Nest] 686  - 04/16/2025, 4:12:25 PM     LOG [Api:Bootstrap] Immich Server is listening on http://127.0.0.1:2283 [v1.131.3] [production] 
[ig-init] done.
Detected CPU Cores: 32
Starting microservices worker
[04/16/25 16:12:27] INFO     Starting gunicorn 23.0.0                           
[04/16/25 16:12:27] INFO     Listening at: http://0.0.0.0:3003 (744)            
[04/16/25 16:12:27] INFO     Using worker: immich_ml.config.CustomUvicornWorker 
[04/16/25 16:12:27] INFO     Booting worker with pid: 746                       
[Nest] 706  - 04/16/2025, 4:12:28 PM     LOG [Microservices:EventRepository] Initialized websocket server
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:DatabaseRepository] Running migrations, this may take a while
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:MetadataService] Bootstrapping metadata service
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:MetadataService] Initializing metadata service
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:MapRepository] Initializing metadata repository
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:MetadataService] Initialized local reverse geocoder
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:ServerService] Feature Flags: {
  "smartSearch": true,
  "facialRecognition": true,
  "duplicateDetection": true,
  "map": true,
  "reverseGeocoding": true,
  "importFaces": false,
  "sidecar": true,
  "search": true,
  "trash": true,
  "oauth": false,
  "oauthAutoLaunch": false,
  "passwordLogin": true,
  "configFile": false,
  "email": false
}
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:StorageService] Successfully verified system mount folder checks
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:SystemConfigService] LogLevel=log (set via system config)
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:NestFactory] Starting Nest application...
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] BullModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] ClsModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] ClsCommonModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] OpenTelemetryModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] KyselyModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] KyselyCoreModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] DiscoveryModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] ClsRootModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] BullModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] BullModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:InstanceLoader] MicroservicesModule dependencies initialized
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:NestApplication] Nest application successfully started
[Nest] 706  - 04/16/2025, 4:12:29 PM     LOG [Microservices:Bootstrap] Immich Microservices is running [v1.131.3] [production] 
[04/16/25 16:12:32] INFO     Started server process [746]                       
[04/16/25 16:12:32] INFO     Waiting for application startup.                   
[04/16/25 16:12:32] INFO     Created in-memory cache with unloading after 300s  
                             of inactivity.                                     
[04/16/25 16:12:32] INFO     Initialized request thread pool with 32 threads.   
[04/16/25 16:12:32] INFO     Application startup complete. 

 

I followed the SpaceInvader guide on YT but it's a little outdated, so the latest container has some new entries:

SERVER_HOST: 0.0.0.0

SERVER_PORT: 2283

 

Leaving those as is loads the container, but I can just never get into the WebUI.   According to SpaceInvader, he says the "PostgreSQL_Immich" container should have the same version number as the docker compose file, but the docker compose file is v14 0.20, yet SpaceInvader's own container is pg16-v0.3.0.  Wouldn't I get Immich log file errors if the SQL version was wrong?

 

Deleting the "SERVER_HOST" and "SERVER_PORT" variables solved my problems (pictures not shown and no thumbnails). I don't think they're needed. I'm running the container with:

Network Type:				Custom : br0
Fixed IP address (optional):		192.168.#.#

I can change the portnumber to whatever i want.

  • Community Expert
21 hours ago, Aran said:

Deleting the "SERVER_HOST" and "SERVER_PORT" variables solved my problems (pictures not shown and no thumbnails). I don't think they're needed. I'm running the container with:

Network Type:				Custom : br0
Fixed IP address (optional):		192.168.#.#

I can change the portnumber to whatever i want.

??? ...
You should be deleting temaptel variables...

Please review Some Docker networking Info when to use what docker network

As the ports are ignored if using br0 and setting the interface ports to different ports is only usable and available for docker nat to change ports.

You have to change the even for immich in side the docker container (My understating is that is not possible with image genious docker image. a env / premade server config is made for us.

Immage genious server config / env set immich web UI to port 8080

If you use a docker network that is not docker bridge the unraid teampte of docker port map and nat contorel are ignored and not used.

Note that these are the ENV docker varables that composes could use to change and edit poprts...

While untested. In theory once could try passing immich ENV
https://immich.app/docs/install/environment-variables/

image.png

Unraid CA immage genious users default port 8080

I will not test this(PAssing compose docker env) and can only recommend you look more into docker networks.

IMMICH_PORT

Listening port

2283 (server), 3003 (machine learning)

On 5/27/2025 at 3:54 PM, MowMdown said:

br0 network should be strictly avoided unless absolutely necessary.

I'd never run Immich or anything else that needs to be accessed like it (webUI / web app), including sharing with others, on a shared IP. So for Immich and so many other containers, sorry, but br0 is an absolute must. The visual parts of the web, presented in a browser run on ports 80 and 443 by default, having to specify an alternate port just doesn't fly.

IMO, it's best used for most things along with a reverse proxy (a must), whether or not one is using piHole or AdGuard Home - but do run some DNS resolver like Unbound.

Edited by Espressomatic

On 7/11/2025 at 5:05 AM, Espressomatic said:

IMO, it's best used for most things along with a reverse proxy (a must), whether or not one is using piHole or AdGuard Home - but do run some DNS resolver like Unbound.

This.

A Reverse Proxy with automated cert renewal would make a great feature for an official Unraid Plugin. Setting up a TLD and subdomains for all your services (made easy) would really lower the barrier to entry for many new customers. Especially if coupled with automatic broadcast over Bonjour/mDNS, so those customers would be able to take advantage of local name resolution without setting up a forwarder or resolver.

Edited by Espressomatic

  • 2 months later...
  • Community Expert

due to forum chagnes post geting deleted and other issues I've rewriten the guide post with the updated dockers...


New guide post Due to confusion can be used for support...
https://bmartino1.weebly.com/guides.html

Linked this Thread as it was THE OG SUPPORT POST!

Hey, I have a problem with  Immich_PostgreSQL. Whenever I start Immich I have this error in the logs and Immich not working:

2025-10-05 12:44:35.290 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-10-05 12:44:35.292 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-10-05 14:44:39.924 CEST [1] LOG:  starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2025-10-05 14:44:39.924 CEST [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-10-05 14:44:39.924 CEST [1] LOG:  listening on IPv6 address "::", port 5432
2025-10-05 14:44:39.936 CEST [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-10-05 14:44:39.961 CEST [120] LOG:  database system was shut down at 2025-10-05 14:44:35 CEST
2025-10-05 14:44:39.986 CEST [1] LOG:  database system is ready to accept connections
2025-10-05 14:46:26.857 CEST [145] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:30.061 CEST [146] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:38.707 CEST [147] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:50.059 CEST [1] LOG:  could not open file "postmaster.pid": Permission denied; continuing anyway
2025-10-05 14:46:50.060 CEST [148] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:50.501 CEST [149] FATAL:  could not open file "global/pg_filenode.map": Permission denied

To do a quick test, I did a chmod -R 777 /mnt/user/appdata/immich/database/postgres/

Immich work without problem until I restart it and got again the problem since the permission are getting reinitialized.

  • Author

@Cuissedemouche figure out what the name of the owner of that process is and do a chown on the folder.

        sudo chown -R postgres_user:postgres_user $PGDATA/global

It's odd that it didn't initialize correctly - was it running fine for a while, but then started throwing this error? Or has it been this error since the beginning?

Might be worth backing up the database, deleting the /mnt/user/appdata/immich folder, then reinstalling the docker and postgres database.

Are you running two dockers: Immich and the PostgresDB docker? Shouldn't the PostgresDB docker have it's appdata in a different folder from the immich appdata folder?

  • Community Expert
3 hours ago, Cuissedemouche said:

Hey, I have a problem with  Immich_PostgreSQL. Whenever I start Immich I have this error in the logs and Immich not working:

2025-10-05 12:44:35.290 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-10-05 12:44:35.292 GMT [1] LOG:  skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2025-10-05 14:44:39.924 CEST [1] LOG:  starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2025-10-05 14:44:39.924 CEST [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-10-05 14:44:39.924 CEST [1] LOG:  listening on IPv6 address "::", port 5432
2025-10-05 14:44:39.936 CEST [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-10-05 14:44:39.961 CEST [120] LOG:  database system was shut down at 2025-10-05 14:44:35 CEST
2025-10-05 14:44:39.986 CEST [1] LOG:  database system is ready to accept connections
2025-10-05 14:46:26.857 CEST [145] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:30.061 CEST [146] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:38.707 CEST [147] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:50.059 CEST [1] LOG:  could not open file "postmaster.pid": Permission denied; continuing anyway
2025-10-05 14:46:50.060 CEST [148] FATAL:  could not open file "global/pg_filenode.map": Permission denied
2025-10-05 14:46:50.501 CEST [149] FATAL:  could not open file "global/pg_filenode.map": Permission denied

To do a quick test, I did a chmod -R 777 /mnt/user/appdata/immich/database/postgres/

Immich work without problem until I restart it and got again the problem since the permission are getting reinitialized.


what's your data path on unraid that maps the docker database?

You may need to run unraids docker safer permission.

chmod 777 -R /mnt/user/appdata/path_to_database

chown nobody:users -R /mnt/user/appdata/path_to_database

2 hours ago, rutherford said:

Are you running two dockers: Immich and the PostgresDB docker? Shouldn't the PostgresDB docker have it's appdata in a different folder from the immich appdata folder?

I figured out the problem.
I had changed the database storage path to /mnt/user/appdata/immich/database/postgres in the template of Immich_PostgreSQL, and while configuring Immich, I wanted to map /config to /mnt/user/appdata/immich/config but let it by default to /mnt/user/appdata/immich. That was what caused the problem.

Sorry for the bothering.

Now I can continue my quest into configuring Immich, next step trying to figure out how to use my 1070 for the machine learning :)
EDIT: That was fast, just had to add --gpus=all to the extra parameters of the cuda branch :D

Edited by Cuissedemouche

  • 1 month later...
  • Community Expert

FYI Postgres v18 and up issues.

so postgress docker v18 needs different docker varables to run

PGDATA

Important Change: the PGDATA environment variable of the image was changed to be version specific in PostgreSQL 18 and above⁠. For 18 it is /var/lib/postgresql/18/docker. Later versions will replace 18 with their respective major version (e.g., /var/lib/postgresql/19/docker for PostgreSQL 19.x). The defined VOLUME was changed in 18 and above to /var/lib/postgresql. Mounts and volumes should be targeted at the updated location. This will allow users upgrading between PostgreSQL major releases to use the faster --link when running pg_upgrade and mounting /var/lib/postgresql.

Users who wish to opt-in to this change on older releases can do so by setting PGDATA explicitly (--env PGDATA=/var/lib/postgresql/17/docker --volume some-postgres:/var/lib/postgresql). To migrate pre-existing data, adjust the volume's folder structure appropriately first (moving all database files into a PG_MAJOR/docker subdirectory).

Important Note: (for PostgreSQL 17 and below) Mount the data volume at /var/lib/postgresql/data and not at /var/lib/postgresql because mounts at the latter path WILL NOT PERSIST database data when the container is re-created. The Dockerfile that builds the image declares a volume at /var/lib/postgresql/data and if no data volume is mounted at that path then the container runtime will automatically create an anonymous volume⁠ that is not reused across container re-creations. Data will be written to the anonymous volume rather than your intended data volume and won't persist when the container is deleted and re-created.

This (PGDATA) is an environment variable that is not Docker specific. Because the variable is used by the postgres server binary (see the PostgreSQL docs⁠), the entrypoint script takes it into account.

https://github.com/immich-app/immich/issues/23663

I have updated the CA for v18 moving forwards to fix issues. and set the app data path back to one so docker tag changes may show a 18 folder or 19 depending on tag...

On 11/11/2025 at 8:02 PM, bmartino1 said:

I have updated the CA for v18 moving forwards to fix issues. and set the app data path back to one so docker tag changes may show a 18 folder or 19 depending on tag...

Hi bmartino1,

I installed the Immich_PostgreSQL 16 and got the immich working by following your online guide. Which is very helpful and easy to follow. Thank you very much!

I migrated to Immich_PostgreSQL 18, all seems to be working except for the daily database dump.

I get error: immich databasebackup failed with error: spawn /usr/lib/postgresql/18/bin/pg_dumpall ENOENT

Is there I need to update with my docker container path?

Thanks!

  • Community Expert
33 minutes ago, OtherSide said:

Hi bmartino1,

I installed the Immich_PostgreSQL 16 and got the immich working by following your online guide. Which is very helpful and easy to follow. Thank you very much!

I migrated to Immich_PostgreSQL 18, all seems to be working except for the daily database dump.

I get error: immich databasebackup failed with error: spawn /usr/lib/postgresql/18/bin/pg_dumpall ENOENT

Is there I need to update with my docker container path?

Thanks!

thats a first time error for me.

immich auto backups the sql database:

Immich server admin settings:
image.png

so if your getting a error its either not talking to the correct database or differet internal error is happening.
That might be a github bug report. see https://github.com/immich-app/immich/issues/14021

So min rant...as this half right: it is Immich looking in the “wrong place”, but not for the data directory. It’s looking in the wrong place for the pg_dumpall binary inside the Immich server container, and that’s what’s blowing up the automatic backup job.

What the error actually means

Their error:

immich databasebackup failed with error: spawn /usr/lib/postgresql/18/bin/pg_dumpall ENOENT

Key points:

  • spawn … ENOENT = the file doesn’t exist in the container where Immich is trying to run it.

  • That path, /usr/lib/postgresql/18/bin/pg_dumpall, is inside the Immich server container, not in the dedicated Postgres container.

  • Immich’s BackupService figures out the Postgres major version and tries to run:

    /usr/lib/postgresql/<DB_MAJOR>/bin/pg_dumpall
    

    This behavior is documented indirectly in various issues where it fails if the matching client binary isn’t present.

In the imagegenius baseimage (the one Unraid CA Immich template is built on), they install a specific postgresql-client version (e.g. 16). That creates /usr/lib/postgresql/16/bin/pg_dumpall, but not /usr/lib/postgresql/18/bin/pg_dumpall. That exact mismatch is tracked here for version 14 vs 16, with the same spawn /usr/lib/postgresql/<version>/bin/pg_dumpall ENOENT error. https://github.com/imagegenius/docker-baseimage-immich/issues/11

*I'm stuck on postgress isues... this is a immich server issues and would need a update from immich to use postgress v18...

So in your use case:

  • DB container: Postgres 18 (from your Immich_PostgreSQL 18 CA template) – fine.

  • Immich server container: only has pg_dumpall for whatever client Debian ships (likely 16), not 18.

  • Immich sees DB version = 18 → tries /usr/lib/postgresql/18/bin/pg_dumpall → file not found → ENOENT.

That has nothing to do with:

  • The Postgres volume mount /var/lib/postgresql vs /var/lib/postgresql/data

  • The PGDATA changes you fixed in the Unraid CA Postgres 18 template

Those PGDATA / VOLUME docs you quoted are about where Postgres stores the cluster data, not where the pg_dumpall binary lives.


review: https://docs.immich.app/administration/postgres-standalone/


As you are in charge of your own backups. I would dump the old Postgres v16 data build v18 new and restore data.

Also, restoring data will change database user access and password to what you had from v16...

v16 is not EOL and I don't think image genious has made teh v18 leap yet to iron out the bugs. i would stay on v16. or move to the compose method.

https://docs.immich.app/install/unraid

https://bmartino1.weebly.com/immich-on-unraid-docker-compose-guide.html

Edited by bmartino1
data - spelling

1 hour ago, bmartino1 said:

thats a first time error for me.

immich auto backups the sql database:

Immich server admin settings:
image.png

so if your getting a error its either not talking to the correct database or differet internal error is happening.
That might be a github bug report. see https://github.com/immich-app/immich/issues/14021

So min rant...as this half right: it is Immich looking in the “wrong place”, but not for the data directory. It’s looking in the wrong place for the pg_dumpall binary inside the Immich server container, and that’s what’s blowing up the automatic backup job.

What the error actually means

Their error:

Key points:

  • spawn … ENOENT = the file doesn’t exist in the container where Immich is trying to run it.

  • That path, /usr/lib/postgresql/18/bin/pg_dumpall, is inside the Immich server container, not in the dedicated Postgres container.

  • Immich’s BackupService figures out the Postgres major version and tries to run:

    /usr/lib/postgresql/<DB_MAJOR>/bin/pg_dumpall
    

    This behavior is documented indirectly in various issues where it fails if the matching client binary isn’t present.

In the imagegenius baseimage (the one Unraid CA Immich template is built on), they install a specific postgresql-client version (e.g. 16). That creates /usr/lib/postgresql/16/bin/pg_dumpall, but not /usr/lib/postgresql/18/bin/pg_dumpall. That exact mismatch is tracked here for version 14 vs 16, with the same spawn /usr/lib/postgresql/<version>/bin/pg_dumpall ENOENT error. https://github.com/imagegenius/docker-baseimage-immich/issues/11

*I'm stuck on postgress isues... this is a immich server issues and would need a update from immich to use postgress v18...

So in your use case:

  • DB container: Postgres 18 (from your Immich_PostgreSQL 18 CA template) – fine.

  • Immich server container: only has pg_dumpall for whatever client Debian ships (likely 16), not 18.

  • Immich sees DB version = 18 → tries /usr/lib/postgresql/18/bin/pg_dumpall → file not found → ENOENT.

That has nothing to do with:

  • The Postgres volume mount /var/lib/postgresql vs /var/lib/postgresql/data

  • The PGDATA changes you fixed in the Unraid CA Postgres 18 template

Those PGDATA / VOLUME docs you quoted are about where Postgres stores the cluster data, not where the pg_dumpall binary lives.


review: https://docs.immich.app/administration/postgres-standalone/


As you are in charge of your own backups. I would dump the old Postgres v16 data build v18 new and restore data.

Also, restoring data will change database user access and password to what you had from v16...

v16 is not EOL and I don't think image genious has made teh v18 leap yet to iron out the bugs. i would stay on v16. or move to the compose method.

https://docs.immich.app/install/unraid

https://bmartino1.weebly.com/immich-on-unraid-docker-compose-guide.html

Thank you for breaking it down for me to have a better understanding of what is going on.

I will continue to work on this issue this weekend. I have my main unraid still on the postgres 16,and all is working thanks to your guide.

Appreciate your time and effort with your detailed reply. And thanks for sharing your knowledge!

So a new issue for me this morning. It was showing an update available for the Immich docker container, so I updated it. I always check on it afterwards and it's just essentially a blank home screen now with no thumbnails and timeline. I always use Firefox normally, but have also tried in Chrome, and completely removed the cache and previous settings, still the same. You can't click anything on the page, and just get regular pop ups from the browser saying the page is slowing things down etc.. No error messages in the logs by the looks of it, and it's working fine on my Phone. Very odd!

Pretty sure it was the 2.2.3 update that was installed.

image.png

13 minutes ago, DeadMode said:

So a new issue for me this morning. It was showing an update available for the Immich docker container, so I updated it. I always check on it afterwards and it's just essentially a blank home screen now with no thumbnails and timeline. I always use Firefox normally, but have also tried in Chrome, and completely removed the cache and previous settings, still the same. You can't click anything on the page, and just get regular pop ups from the browser saying the page is slowing things down etc.. No error messages in the logs by the looks of it, and it's working fine on my Phone. Very odd!

Pretty sure it was the 2.2.3 update that was installed.

image.png

I have the same problem. Unfortunately, I haven't found a solution yet. In any case, you're not alone with this problem.

Edited by Nicksen

2 hours ago, DeadMode said:

So a new issue for me this morning. It was showing an update available for the Immich docker container, so I updated it. I always check on it afterwards and it's just essentially a blank home screen now with no thumbnails and timeline. I always use Firefox normally, but have also tried in Chrome, and completely removed the cache and previous settings, still the same. You can't click anything on the page, and just get regular pop ups from the browser saying the page is slowing things down etc.. No error messages in the logs by the looks of it, and it's working fine on my Phone. Very odd!

Pretty sure it was the 2.2.3 update that was installed.

image.png

Same problem. Just updated the imagegenius container to 2.3.1. And says Server Offline Unknown in the lower left corner.
Left it churning trying to load the page for a bit and finally just a completely black screen. Closed the screen and opened again. Thumbnails tried to come up (showing the blurred version of each). Now says Server Online in the lower left, but still says Unknown beside it. I assume the Unknown is where it used to show the version.
Watching the logs and nothing seems to be happening. Last lines just talk about "Machine learning server became healthy" (typical startup stuff) and then a few lines showing where I connected and disconnected from the Websocket.

I currently use postgresql_immich from spaceinvaderone's repository. I've been seeing the vectorchord immich warning in logs. Anyone have any advice on how to do the transition? Or is this something that I should just wait on for an update to the posgresql_immich app.

  • Community Expert
45 minutes ago, depot said:

I currently use postgresql_immich from spaceinvaderone's repository. I've been seeing the vectorchord immich warning in logs. Anyone have any advice on how to do the transition? Or is this something that I should just wait on for an update to the posgresql_immich app.

immich took over and made a pgvector vetochord docker image.

there was documentaion on this and how to transtion...

https://web.archive.org/web/20250725161640/https://forums.unraid.net/topic/190531-guide-immich-docker-setup-unraid-ca/

due to the confuision updates and issues with directing support vs data for a guide you may be able to find the way witht eh way back machine on the old topic...

esentail you backup your data. Install my CA docker image load / restore your backup adn tell immich to use the new CA docker...


You are responsipble for your data and database... ther are guides on immich and others regrading the use of anotehr docker pgadmin to conect and sql bnackup your postgress data to move toteh new image...

10 hours ago, DeadMode said:

So a new issue for me this morning. It was showing an update available for the Immich docker container, so I updated it. I always check on it afterwards and it's just essentially a blank home screen now with no thumbnails and timeline. I always use Firefox normally, but have also tried in Chrome, and completely removed the cache and previous settings, still the same. You can't click anything on the page, and just get regular pop ups from the browser saying the page is slowing things down etc.. No error messages in the logs by the looks of it, and it's working fine on my Phone. Very odd!

Pretty sure it was the 2.2.3 update that was installed.

image.png

Same problem for me too.

I just updated immich via CA to version 2.3.1. The web GUI is now accessible again, but the update has moved all photos to the trash folder. The photos cannot be restored, they remain in the trash folder.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.