Linux

Where Does Immich Store Photos and Data?

Immich mounts uploads at /data on new Docker installs with Postgres beside it, plus .env holding secrets and paths.

Last updated

Immich splits photos from metadata. The upload tree holds originals, thumbnails, encoded video, and profiles. Postgres holds users, timelines, faces, and search indexes. The .env file ties them together with locations and secrets.

Path history trips people. Older installs mounted uploads at /usr/src/app/upload, current ones use /data with the same interior. External libraries add read only mounts beside the main tree. Back up the tree with a database dump and env file as one set.

Storage metrics track the upload location, so monitor that mount. Thumbnails and encodes dwarf originals on big libraries. Redis caches jobs and needs no backup at all.

Where Immich stores this, by platform

Linux
/data (inside container)

Originals plus thumbs, encoded video, and profiles here. Older installs used /usr/src/app/upload instead. Bind UPLOAD_LOCATION to a host folder you monitor.

Frequently asked questions

How do I back up self-hosted Immich?

Dump Postgres, copy the whole upload tree, and copy the .env file. Miss the database and faces plus timelines vanish. Miss the upload tree and the database points at ghosts. Keep versions matched on restore or schemas refuse.

My Immich paths differ from guides. Why?

Read the volumes of immich-server in your compose file. Newer releases mount UPLOAD_LOCATION at /data while older ones used /usr/src/app/upload. The database volume sits apart. Your compose file is the map, not any remembered default.

Notice an outdated path? Let us know.