For those unfamiliar, Immich is a self-hosted photo and video manager, similar to Google Photos, etc.
In the short time I’ve been using Immich, they’ve already more or less addressed my main concern, which was around shared albums. Now all I really need is for the option to display select shared albums in a user’s main feed.
Some key changes from this version that I thought were neat:
We are very pleased to release the next big milestone towards better sharing: people can now be shared!
As a user you can share people with another user in your cluster group
Lastly, by allowing cross-user merging, you can now merge a face from your own assets with people shared with you from other users. This is especially helpful if you didn’t want to re-run facial recognition after joining a cluster group before. Now, after setting up bi-directional sharing, users can manually link people together.
In an effort of making Immich more joyful to use, we are introducing memories for people’s birthdays.
If it’s the birthday of a person in your library, Immich will now celebrate that with a special memory featuring previous birthdays.
After a long list of optimizations, ML is both significantly faster and uses less memory. This affects every backend, including CPU inference. However, the level of improvement varies by model and backend. Cases where certain backends (such as OpenVINO) produced wrong outputs at times should be resolved.


How is everyone backing up Immich off site without breaking the bank? I have ~4tb of photos and videos going back years.
Kopia to Google cloud. Kopia can tag the data files so they end in the ‘archive’ tier, which is 1$/TBmonth. Recovery is like, 100$/TB, but if I ever need it that’s fine.
Two old N40Ls acting as NASs replicating onsite, a third micro server at a friends tunneling back to get replicated on, and a external hard disk to get periodic offline replication
I have a storage box with hostbrr for my ~800GB of files. They have deals sometimes with 4TB boxes for like $9 a month or so. Hetzner storage boxes are also sometimes on sale.
I have an HDD at my parents place and manually bring over snapshots when I visit. Off site does not necessarily mean cloud.
I have a literal HDD in a pelican case.
I plug it into my NAS periodically, clone over to it, scrub for bit rot, put it back in the case and drop it at my BILs.
Plenty good enough.
4tb it pretty high. I back up my files to backblaze, HDDs on site, and a cold copy on HDDs off-site.
Immich has so many dirs and files that it will take hour/hours for any file-based program to walk that tree (on an HDD) in order to do a backup. I used to use rsync, syncthing, duplicity and had gotten it to about under an hour for 1TB library. The service has to be shutdown to preserve consistency of the backup. So that downtime was okay once per day. Still a heavy operation. Not great, not terrible.
Because of the above you might want to do one of the following:
So depending on how painful migrations are for you, I’d highly recommend the latter. Otherwise the former. The ZFS snapshot send strategy works for any service you may run.
Immich uses
user/YYYY/MMfolders on my setup, and I exclude any thumbnail directories from the backup too. So not many dirs/files to check for the backup software and it’s very quick.You don’t need to shut it down, pg_dump works fine while it’s like if you want to make sure it’s a good database backup. The files side of things are fine either way.
That makes sense. I copy the whole set of data dirs so I can trivially start it after restore or start it elsewhere without extra steps. Also because this strategy works with all services so I don’t have to consider how to backup/restore each one. Makes adding new services less work.
pgdump with live file copy while the service is in active use can result in files the db doesn’t know about, or files it thinks are there that were actuall deleted. Probably can be fixed after the fact.
More generally, as a someone who’s done software for a very long time, I’ve learned that the further away I go from the happy path of a software program, the less tested it is, the more bugs there are and the poorer the edge case handling is. It’s inherent to software development with limited labour. So for backups I lean on the process kill/recovery edge case that they all must handle. Snapshot + backup from that snapshot looks like a process death to the service upon restore.
That’s fair, shutdown service + backup everything is certainly more guaranteed to work properly.
With Immich I’m not too worried about the DB potentially being off since it can rescan the filesystem, but I also backup at 3am when nothing is happening on Immich because I’m asleep!
If you do it at 3AM anyway… may as well eliminate the need to even think about mismatches. 😁 I think mine also used to do it at 3AM before I switched to ZFS snapshots + send/recv.
Put a server at a friends house? I also saw a selfhosted storage sharing build the other day, allowed other users to access defined storages on your server.
What would my friend need to do at their end?
You could set them up to run a Restic server for you and then do backups with that. Restic is fully encrypted, does differential backups, and can do configurable pruning. With 4 TB the initial run will take long, even locally, but it can also resume, so should work.
https://github.com/restic/rest-server
Thanks!
I run an rclone script to S3 glacier every 2 weeks and obviously restoring from that will be intensive but if I need it there will be worse things going on. Costs only $2 a month for 1.5T
Hertzner storage box. I think it’s €13/month for 5tb. Just storage with ssh interface. I use restic but most backup systems should work with it.
That’s a lot of money, isn’t it? Just buy a 4Tb HDD, backup and store somewhere offsite. Will pay of in a year.
If you have someone far enough away, with fast/reliable internet, and a safe spot to put it.
some of us don’t have friends, or at least none reliable enough to trust with an offsite backup machine 😂