Linux

Where Does Immich Store Photos and Its Database?

Immich upload library path, Postgres volume and .env config for Docker Compose installs.

Last updated

Immich splits state three ways: originals and thumbnails in the upload directory, metadata in Postgres, and deployment settings in your compose .env file. A backup needs all three to restore cleanly.

The container path is fixed at /usr/src/app/upload while the host side is whatever UPLOAD_LOCATION you set. Confirm your bind before assuming the default library folder.

Where Immich stores this, by platform

Linux
/usr/src/app/upload

In-container library path for originals, thumbnails and encoded video, bind-mounted from UPLOAD_LOCATION on the host (./library by default in the example compose). Postgres data lives in a separate pgdata volume, and DB details plus upload location come from the .env beside docker-compose.yml. Back up the upload bind, a Postgres dump, and the .env together with Immich stopped.

Frequently asked questions

How do I back up Immich properly?

Copy the UPLOAD_LOCATION bind, dump Postgres, and save the .env and compose files. The photo files alone cannot rebuild albums, users or machine-learning metadata.

Where is the Immich config file?

There is none inside the app: deployment settings live in the .env file next to your docker-compose.yml on the host.

Notice an outdated path? Let us know.