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
/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.