Immich is a modern photo management web application which aims to be similar to Google Photo. It can be uses to backup phone photos and also manage older collection of older photos.
Hi fellow self-hoster.
Almost one year ago i did experiment with Immich and found, at the time, that it was not up to pair to what i was expecting from it. Basically my use case was slightly different from the Immich user experience.
After all this time i decided to give it another go and i am amazed! It has grown a lot, it now has all the features i need and where lacking at the time.
So, in just a few hours i set it up and configured my external libraries, backup, storage template and OIDC authentication with authelia. All works.
Great kudos to the devs which are doing an amazing work.
I have documented all the steps of the process with the link on top of this post, hope it can be useful for someone.
I backup with restic the database backups done by immich, not the database itself, and the Library/library folder which contains the actual images and videos.
I used to use a docker container that makes db dumps of the database and drops it into the same persistent storage folder the main application uses. I use this for everything in docker that had a db.
Immich as recently integrated this into the app itself so its no longer needed.
All my docker persistent data is in a top level folder called dockerdata.
In that I have sub folders like immich which get mounted as volumes in the docker apps.
So now I have only 1 folder to backup for everything. I use zfs snapshots to backup locally (zfs auto shot) and borgmatic for remote backups (borgbase).
All my dockers all compose files that are in git.
I can restore he entire server by restoring 1 data folder and 1 compose file per stack.
I don't understand how that's helpful. If something is corrupted or my house burns down, a local backup is going to go with it. That's why I asked for external backups.
I have three tiers of backup. Never heard or the 3,2,1 rule?
3 backups
2 locations
1 offsite
I backup one time on an external disk connected to the server. A second time to another disk, connected on an OpenWRT router located in the patio. A third copy is uploaded to my VPS in the cloud.
not all three are symmetrical due to disk sizes. But critical data is always backed up on all three.
Daily backups.
Restic do deduplication and encryption too, so actual data usage is really minimal and all is kept safe.
If anyone's interested, here's my Immich backup script. You setup rclone to use an S3 storage service like BackBlaze which is quite cheap. I also use a crypt which means RClone will encrypt and decrypt all files to/from the server. S3 configuration and crypt setup.
Then set this up as a cron job. With the "BACKUP_DIR" option when you delete a photo it will get moved to the "deleted" folder. You can go into your S3 provider's lifecycle settings and have these get deleted after a number of days. I do 10 days. Or you can skip that and they'll be gone forever.
I think it is. It doesn't take much to understand which folders needs to be backed up. They are also pretty clear on the immich website on how to backup the database itself. No, just an "export" wouldn't be good enough since the files themselves do not include the metadata.
They are also pretty clear on the immich website on how to backup the database itself
Yeah I'm pretty tired of hearing things are "pretty clear" or "not that complicated" and then being directed to an absolute word salad of technical terms no one without a computer science degree would understand.
No, just an "export" wouldn't be good enough since the files themselves do not include the metadata.
There's no way to do that for your entire library. Also I assume that would not retain the Immich-specific metadata like the ML object tags and the "people" tagged in the photos.
Are you paying for Immich somewhere? Then you'd have to trust the administrator to back your data up. I had assumed you were self hosting and by managed services I meant like Google Photos, or indeed someone else's Immich setup.