Skip to main content


What is the difference between the cloud icon on the mobile app?

cloudAsset is only available in the cloud and was uploaded from some other device (like the web client) or was deleted from this device after upload
cloud-crossAsset is only available locally and has not yet been backed up
cloud-doneAsset was uploaded from this device and is now backed up in the cloud/server and still available in original on the device

How can I sync an existing directory with Immich's server?

Immich doesn't have the mechanism to sync an existing directory with the server. There is however, a helper CLI tool to help you bulk upload the existing photos and videos to the server. You can find the guide to use the CLI tool here.

Why does my uploaded photo show up with the wrong date or time in Immich?

When a photo is initially uploaded Immich uses the create date of the file to determine where it belongs in the timeline. After that, background jobs will run that extract exif metadata, including the CreateDate, to provide a more accurate date for the photo. If that is not available it will fallback to the modified date. If you want to ensure your photo has the right date, check the exif metadata before uploading.

If the timezone is incorrect in an uploaded photo, check the DateTimeOriginal exif field of the uploaded file. Immich uses the very competent library exiftool-vendored.js to handle timezone parsing, but in some cases (like photos taken with DSLR cameras) it has to fallback on the local timezone. If you are using docker, this fallback will be UTC. (Note that even the photo backup app that can't be named has the same bug!) In Immich, it is possible to change this assumed fallback timezone system-wide by setting the timezone in the microservices docker container. You might need to run the "Extract Metadata" job after to effect the change.

As an example, the following modification of docker-compose.yml will set the timezone of the microservices container to be Europe/Stockholm

- TZ=Europe/Stockholm # <---- Add this line in the microservices config

The initial approach of Immich is to become a backup tool, primarily for mobile device usage. Thus, all the assets must be uploaded from the mobile client. The app was architectured to perform that job well.

What happens to existing files after I choose a new Storage Template?

Template changes will only apply to new assets. To retroactively apply the template to previously uploaded assets, run the Storage Migration Job, available on the Jobs page.

Why is object detection not very good?

The model we used for machine learning is a prebuilt model, so the accuracy is not very good. It will hopefully be replaced with a better solution in the future.

How can I see Immich logs?

Most Immich components are typically deployed using docker. To see logs for deployed docker containers, you can use the Docker CLI, specifically the docker logs command. For examples, see Docker Help

How can I run Immich as a non-root user?

  1. Set the PUID/PGID environment variables (in .env).
  2. Set the corresponding user argument in docker-compose for each service.
  3. Add an additional volume to immich-microservices that mounts internally to /usr/src/app/.reverse-geocoding-dump.

The non-root user/group needs read/write access to the volume mounts, including UPLOAD_LOCATION.

How can I reset the admin password?

The admin password can be reset by running the reset-admin-password command on the immich-server.

How can I purge data from Immich?

Data for Immich comes in two forms:

  1. Metadata stored in a postgres database, persisted via the pg_data volume
  2. Files (originals, thumbs, profile, etc.), stored in the UPLOAD_LOCATION folder.

To remove the Metadata you can stop Immich and delete the volume.

Remove Immich (containers and volumes)
docker-compose down -v

After removing the the containers and volumes, the Files can be cleaned up (if necessary) from the UPLOAD_LOCATION by simply deleting an unwanted files or folders.