I have spent quite a lot of time trying to find the best photo management solution for my use case, and i think i have finally got a solution in mind. Please follow me and help me understanding what could be improved.
The use case: I took, over the decades, thousand of pictures with manual, film based SLR, digital DSLR and many other devices. Today i mostly only take pictures with my phone and occasionally (like 1-5 rolls per year) B/W film photos. I like to have all the pictures neatly organized per album. Albums are events, trips, occasion or just a collection of photos for any good reason together. I have always organized albums my folders and stored metadata either in the photo or in sidecar files. Over the decades i changed many management tools (the longest has been Digikam) but they all faded away for one reason or the other. I do not want to change organization since it proved solid over decades. I do not trust putting all eggs in a database or a proprietary tool format.
The needs: backup photos from family phones. Organize photos in albums (format as stated above), share & show pictures with family (maybe broader public too), archive for long term availability. Possibly small edits like rotation. Face recognition is a good plus, geographical mapping and reverse geotagging is a great plus. General object recognition could be useful but not a noticeable plus. Also i need multi-user support for family members both on backup and gallery-like browsing. My galleries need to be all shared (or better one big gallery, plus individual backups for users)
What i don’t need: complex editing / elaboration (would be done offline with darktable)
Non-negotiable needs: storing photos in album-based subfolders structure with all metadata inside photos or sidecar files. No other solution will ever stand the test of time.
I tried many tools and none fits the bill. Here are my experiences:
My solution: more of the idea of how i want to proceed from here on…
Backup: keep the great Immich for phone backups. Limitations: requiring emails as user logins breaks my home server authentication scheme but i can live with it. The impossibility to organize photos in folders is a deal breaker but luckily, you can define “logical” albums and download them.
Organization: good old filesystem stuff, i don’t need any specific tools. Existing photos are already sorted in subfolders, new albums can be created from Immich, downloaded, and stored on new subfolders on the server. Non-phone albums (DSLR, film cameras…) can just be added as well directly on filesystem
Viewing: PiGallery2 pointed at the subfolders, blazing fast viewing online for all family members.
Global workflow: take photos from phones, upload automatically to immich, then manually go sort them in albums, download albums and create appropriate subfolders on the server (if needed to save space, delete downloaded photos from immich). Upload/unzip and enjoy from PiGallery2. – OR – take photos with other cameras, scan/process on PC (darktable), create appropriate subfolders on the server, upload and enjoy from PiGallery2.
All in all what pisses me off of all this is:
Of course, the best course would be to have Immich support folders (not external libraries, but actually folder based albums which is totally different approach) and it being able to move photos to folders, but hey, it wouldn’t be fun in that case :)
Amy thoughts?
UPDATE: Immich storage templates seems to be the missing link. Using that properly would cut out the manual download/reupload approach. Need to experiment a bit, but looks promising.
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.
Rules:
Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I ended up with syncthing + the default gallery app on my samsung galaxy phone. It works well for me.
But I don’t have a crazy amount of images, the phone storage needs to be large enough.
Film based DSLR huh?
Digital Film! Thanks for spotting that up.
What’s the best sidecar format?
XMP is the most used format.
The way XMP files are read entirely depends on the software you’re using. Some will write adjustment metadata into XMP (Adobe does this) whereas others write that into their proprietary format and use XMP for other metadata.
Maybe give photoview a shot.
https://github.com/photoview/photoview
Thank you! This look very promising! I will definitely try it
Hey there, a little late to the party maybe but I think you might wanna consider Nextcloud Memories!
https://apps.nextcloud.com/apps/memories
I’m not AS big on the rest of Nextcloud (but NC is really cool), but Memories alone makes it worth it. I haven’t messed with making albums a whole lot yet, but basically it works a lot like Immich, except I’m pretty sure it respects folders and uses the directory. It’s got object/face tagging and reverse-geocoding.
Also sorts everything by EXIF so you don’t end up with that awkward “All my memories happened yesterday” scenario.
Also has an app to auto-upload. I use Tailscale to connect my phone safely to my network, and it uploads when I plug it in to charge.
For backup and sync I use Syncthing. I can specify which folder on which devices I want to sync to which folder on the server.
I use a folder based gallery on my phone so when I move stuff around on my phone (or on my server) it gets replicated on all my devices.
I also have a policy to sync specified folders (and subfolder) with my family’s devices. No more " hey can you send me all the pics from the XYZ trip"
We take a trip. Make a subolder for that trip in a shared folder dump all our pictures there, get home and open the folder on the computer and prune together.
This is a pretty good approach! I love it
I’m honestly so happy to be using Synology Photos. It reads my folder structure; leaves EXIF data alone; unless I want to change it (i.e. time/date); has great sort and search features; I can easily share photos/albums with people, even for them to add photos to my albums; and the mobile apps “just works” for viewing and backing up my photos and videos from multiple devices.
Yes, it’s “proprietary”, but it doesn’t hold your images hostage as something like a proprietary database would. I’m free to explore my photos using any third-party I like, simply by pointing to where they are stored on the NAS.
And while it has some OK subject recognition, I pair it with Exire Foto for mind-blowing, local AI-based search if I need to find something very specific in my collection of 125,000+ images.
I really liked Synology Photos except for the fact that the mobile app would log itself out, presumably after a fixed time, and neglect to tell me that my photos were no longer being backed up as a result. It was infuriating and I couldn’t find a fix so I had to ditch it.
Presumably you don’t have that issue?
I’ve never had that issue on any of the devices it’s been installed on.
It’s asked me to log back in, but usually for reasons that would make sense.
On my device, I do use the Photos app quite often, so I’d know if there was a problem right away. My wife never opens her app, but I do check it from time to time to make sure that it’s still backing things up.
Alternatively, I believe the Synology Drive and Files apps also include backup functionality that might work better for you.
Maybe it’s just something funky with my setup (using 2FA maybe?) but I never could figure it out. I’ve since switched to Immich anyway, was just curious if it affected anyone else!
That’s a shame. Was this on iOS or Android?
How’s Immich running for you? It looks significantly more polished than when I last checked it out. I may give it a spin!
It’s decent with some caveats.
My use case is to have a shared backup repository with my wife. I could’ve (should’ve) used a shared account but I set us both up with individual accounts and used the library sharing feature as that seemed to be the “correct” way to do it. Except that face and other useful data isn’t shared between libraries so it works very differently to how Syno Photos works when uploading directly to a shared space.
The app also doesn’t have separate settings for internal and external URLs, so while I use cloudflare tunnels for most things and call it a day, the data limits they impose meant that I had to setup a reverse proxy internally to make it work over HTTPS while on my home WiFi.
Development is moving at a hell of a pace though, so I’d be surprised if these things weren’t fixed in short order. Meanwhile automatic backups have been working flawlessly.
I’m a prosumer/hobbiest photographer for 20+ years and started from film as well. I have spent countless days/months of my life migrating from systems to systems. While my subsystem is folder based and all tags are on the photo itself, not every software is alike and migrations becomes a chore.
The major issue with software systems like digikey(which I also had) is that they all eventually stop support. After switching to Synology, I have everything you are asking for and more. I went from a 2 bay system, to a 4 bay system and currently on an 8 bay system. Each time it was super seamless. Ran out of space? Pop a new drive in. A drive is starting to fail? It takes your spare drive and automatically brings it into rotation and emails you telling you to replace the spare drive. It does an automatic monthly data scrubbing to ensure data integrity. Seriously so much more. I recently added a docker container for Joplin(a notes, journaling app).
Quite literally zero fiddling, and zero headaches.
I have 8 family members using my system and it’s super easy to implement. Give them the credentials and ask them to download from the play store or Apple store.
Yes it’s proprietary. And moving from Synology to another system will probably be a chore too. But honestly, it’s so simple that I’m willing to some money on it on that less headache.
I struggled with this for a long time, and then I just decided to use synology photos.
It has albums, tagging, geolocation, sharing. It has phone picture backup, it is inherently a backup as it’s on my NAS and I back that data up again.
I want to keep the thing that I really care about the most friction free and also not too dependent on myself so that I can still experiment.
I didn’t try PiGallery2 though, maybe I will have a look!
I don’t have a sinology, and i dont want to use proprietary stuff… so i never looked into it
Immich does support folders?
https://immich.app/docs/administration/storage-template/
With this you can store your photos in whatever structure you want.
No it doesnt. It only support ready photos from folders, then the original structure is lost inside Immich, you cannot even see the folders only the big “timeline”. All albums (=folders) disappear in immich, It’s useless for my use case.
I see this is something different from external libraries (to which applies my other comment). It doesn’t seems to be working for existing external libraries but only for new uploaded files? I will need to check this out more in deep. thanks.
There’s a couple of caveats with it, but I think neither are worse than your proposed flow.
It’s actually what i was looking for… I need to understand if it’s solid enough for long term usage and how to mix that with my existing photo collection, but it really seems that this feature will cut out the need to manually download & move the photos from Immich to PiGallery2…
I don’t have as complex a collection but gthumb on a laptop was ok. Or for a while I used a script that made an html page of clickable thumbnails that I viewed in a browser. That was very fast. For uploading from my phone I use a self hosted nextcloud and I back everything up with Borg. I’ll look over your list again since the programs you mention sound way too complicated. It should be possible to do what you want with a few simple scripts on a server, plus a browser or gallery app on your phone.
I do think being able to have photos in multiple collections is useful. That can be implemented with something like tags.
The scripts approach might be a good solution as well, but i tend to bake my solutions a bit too much already…
Immich having accounts+SSO is the single best feature IMO. Thanks for your thoughts on the topic.
Yup, authentik integration has been amazing to friends and family to just use it as a drop in replacement for google photos.
Once you have SSO it’s a real game changer for self hosted setups with multiple users
I have not setup authelia or similar, i am using proxy auth linked to PAM to simulate SSO. I might end up using authelia or similar in the future to solve this specific issue indeed.
I don’t have your requirements, but nextcloud with Memories works well enough for me. Nextcloud does the file things, including auto upload from phones. Memories then displays those photos.
I moved away from nextcloud after many years, it was time to explore new stuff I guess.
I never used memories before anyway
I primarily use Immich as well and found albums could have a little more options.
I saw ente recently open sourced, may be worth a link.
I went through this as well. This resource should help those starting out: https://github.com/meichthys/foss_photo_libraries
Thanks! There are a couple I didn’t know about and now I need to test them!
@homegrowntechie @Shimitar
Have you looked at https://ente.io? Recently published on github and can self host.
It’d on my list but the self hosting setup is not straightforward (no docker image yet)
Theres a Dockerfile that you can use for building. It barely changes the flow of how you setup the container. Bigger issue imo is that it literally is the code they use for their premium service, meaning that all the payment stuff is in there. And I don’t know if the apps even have support for connecting to a custom instance.
Edit: their docs state that the apps all support custom instances, making this more intruiging
Is there a demo instance? I could use that for testing of it exists.
The demo instance would be their commercial service I suppose: https://ente.io/. Since, as are their own words, the github code 1:1 represents the code running on their own servers, the result when selfhosting should be identical.
Mmm not sure, not a fan of open source.projects dependent on for-pay service. Not for the money itself, but what when/if the business model fails and the tools end up abandoned?
The 'net is filled with forgotten open source project.