The backup doc from Immich states that one should use Postgres’ dump functionality to backup the database, as well as copy the upload location.
Is there any counter indication to doing this instead:
- Create a dir
immich
with subdirsdb
andlibrary
- Mount the
db
dir as a volume for the database - Mount the
library
dir as a volume for the upload location - Backup the whole
immich
dir without dumping the Postgres db. (Stop Immich while before doing this)
If PostgreSQL is also shut down and you dont start the backup before its completely stopped it should be ok. You might need to restore to the same version of PostgreSQL and make sure it is setup the same way. If you dump the data, it is safer, both that you get a known good state, and that it can be restored to any new database. Grabbing the files as you suggest should be ok at least 90 percent of the time. But why risk it?
They do have a doc for this. https://immich.app/docs/administration/backup-and-restore/
I dump my immich db weekly and every 2 weeks sync the media folders to a remote destination
I do this always for any service but also do a dump of the db in the top directory to keep a clean copy to could be version independent. They wont take much more space ho estly
It’s the way I do all of my service backups. One separate DB container per docker stack so nothing else is in there, all the data in one folder, and off we go at 1AM.
Yeah, also I don’t run the
latest
version of the app in order to avoid breakage. I pin some tag so the app version so there shouldn’t be a significant version mismatch during restore. I think @Esquero’s suggestion to also dump the db just in case makes sense too. I’m gonna be writing a backup script / systemd unit anyways, might as well as a couple of lines for that.
Thanks all for the comments and suggestions!