I've been using Immich for a year now and haven't lost a single image.
Having said that, if you self-host something like this, you're responsible for making backups. The actual photos uploaded to Immich are stored in the file system as regular files. Any other data that Immich can't easily recreate is stored in Postgres, which it automatically dumps once a day. So if you back up your image files and your Postgres dumps, you can always recreate your library.
All relevant files are stored in your UPLOAD_LOCATION which you defined in your .env file (if you deployed immich via Docker Compose). The files you absolutely need to back up are in:
- UPLOAD_LOCATION/upload ← Contains your images
- UPLOAD_LOCATION/backups ← Contains your postgres dumps
You should also back up these two directories:
- UPLOAD_LOCATION/library
- UPLOAD_LOCATION/profile
They're not strictly necessary, but it makes it easier to restore the same setup.
Having said that, if you self-host something like this, you're responsible for making backups. The actual photos uploaded to Immich are stored in the file system as regular files. Any other data that Immich can't easily recreate is stored in Postgres, which it automatically dumps once a day. So if you back up your image files and your Postgres dumps, you can always recreate your library.