My biggest worry with Immich is how to future-proof the albums. With photos sorted into folders, it should be no problem to access them in a couple of decades. With Immich, I have to rely on the software still working or finding some kind of tool to dump the database.
I work on an image search engine[0], main idea has been to preserve all the original meta-data and directory structure while allowing semantic and meta-data search from a single interface. All meta-data is stored in a single json file, with original Path and filenames, in case ever to create backups. Instead of uploading photos to a server, you could host it on a cheap VPS with enough space, and instead Index there. (by default it a local app). It is an engine though and don't provide any Auth or specific features like sharing albums!
Don't storage templates handle this out of the box? I haven't actually checked my instance but that was my impression from reading the docs!
The database is Postgres, and the schema is quite sensible. You can (and I have) write normal SQL queries in psql to modify the data.
It might not be as easy as rsync to transfer data out, but I would trust it way more than some of the folder based systems I've had with local apps that somehow get corrupted/modified between their database and the local filesystem. And I don't think ext4 is somehow magically more futureproof than Postgres. And if no-one else writes an export tool, and you feel unable to, your local friendly LLM will happily read the schema and write the SQL for you.
This was why I was driven to use Photoprism. I use syncthing-fork to upload from phones, and a custom made thing to copy them to folders (this also works with Cameras that aren't phones).
I have the same concerns and that’s why I only use software which accept my directory structure as input and isn’t messing with it. I, for example, added my top directories of my image directory structure hand by hand each bit itself as a shared directory (read-only) to immich.
The main reason: I don’t trust software NOT deleting my photos. (Yes, I have an off-site) backup, but the restore would take time.
In the same boat. It seems there is API to export photos, so was thinking about some script that will export photos into separate folder and use hard links in order not to take more space.
As long as it is running on an open source database engine, I don't understand the difficulty.
You'll have plenty of time to write your exportation script before postgres ever disappear completely of all the bytes stored on our planet.
Also, are you saying you don't do backups?
At this point you could just point Claude code at the database and the image folder and ask it to write a migration script
I remember that Immich has a mode to not use cryptic hashes but folders for storage. When I used it it was somehow deprecated due to some problems, but supported. I actually stopped using Immich because newer versions run the keep alive via socket.io with a Prostgres notify, which does constant empty WAL flushes, triggering empty page writes on idle.
Thank you, well put. thats why I am using next cloud and manual curation. Folders is the ultimate future proof structure. But I do see the value of a nice UI. But immich hides the files from me too much for my taste.
Although I am sure I can back them up to my PC somehow. But having them just on the server is not my favourite solution.
I share this worry.
You can configure the storage template for the photos and include an "album" part, so if a photo is in some album it'll get sorted into that folder. Then the file tree on disk is as you wish.
I haven't tested what it does when a photo is in multiple albums, but it does handle the no album case fine as well.
This is why I still use Piwigo as I don't need to mess with file names and structure as far as I have seen.
I use Single File PHP Gallery. Put the file in root dir of your photos and set it executable in web server. That's it. The settings are also inside the file, if you need any tweaking.
https://sye.dk/sfpg/