Immich doesn't have two-way synchronization (yet), but the command line tool can bulk upload items from a directory to Immich.
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.
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
environment:
- TZ=Europe/Stockholm # <---- Add this line in the microservices config
This often happens when using a reverse proxy or cloudflare tunnel in front of Immich. Make sure to set your reverse proxy to allow large POST requests. In nginx
, set client_max_body_size 50000M;
or similar. Cloudflare tunnels are limited to 100 mb file sizes.
Immich uses optional machine-learning features to enhance search results. This feature, however, can be too heavy to run on a Raspberry Pi. To disable machine learning, comment out the immich-machine-learning
section of your docker-compose.yml and set IMMICH_MACHINE_LEARNING_URL=false
in your .env file.
:::warning Disabling both will result in poor search experience and typesense utilizes CLIP embeddings which are generated by machine-learning. :::
These features can be disabled by commenting out immich-typesense
and immich-machine-learning
sections of the docker-compose.yml and setting IMMICH_MACHINE_LEARNING_URL=false
& TYPESENSE_ENABLED=false
in your .env file.
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.
This is fixed by running the storage migration job.
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.
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
PUID
/PGID
environment variables (in .env
).user
argument in docker-compose
for each service.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
.
The admin password can be reset by running the reset-admin-password command on the immich-server.
See backup and restore.
Data for Immich comes in two forms:
pg_data
volumeUPLOAD_LOCATION
folder.To remove the Metadata you can stop Immich and delete the volume.
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.
If you are using My Photo Stream
, the Photos app temporarily creates duplicates of photos taken in the last 30 days. These photos are included in the Recents
album and thus shown up twice. To fix this, you can disable My Photo Stream
in the native Photos app or choose a different album in the backup screen in Immich.