After going through 25 years of changing software every few years on this front I can’t be bothered. Files on disk. Nothing over the top. Immich is just another thing to maintain. Another problem which will result in a wholesale migration down the line.
If someone wants something I email it to them or upload it to a directory on a web server and send them the link. If I want something on my phone I’ll zap it over with localsend.
Photography is a hobby for me and I have a large family so I have a lot of photos. And a lot of editing to do. Currently moving from Lightroom to Darktable because again Lightroom tries to hammer me with library management and lock me into things.
> After going through 25 years of changing software every few years on this front I can’t be bothered. Files on disk. Nothing over the top. Immich is just another thing to maintain. Another problem which will result in a wholesale migration down the line.
I've got the solution to this. I'm like you: files on disk. But I also use Immich: and here's the kicker... I pass the drive/volume with my photos to Immich as read-only (I use containers so it's easy: the drive itself is read-write, but Immich only has read-only access to it).
When I'm pissed off by Immich or something better comes along, I destroy the Immich containers and it's gone.
And I still my files on disk (with checksums as part of the filenames, moreover, seen that family JPG pictures aren't files that happen to change a lot and if they change, they can be renamed).
Habe you tried nextcloud + memories app?
Every metadata is stored in EXIF and the directory structure on disk defines the directory structure in the app (and vice versa).
When you want to move your tooling or just do things manual again, grab the disk and your are ready.
> Have you tried nextcloud + memories app? Every metadata is stored in EXIF and the directory structure on disk defines the directory structure in the app (and vice versa).
Ouch. One feature I love with Immich is that I can run it as Docker containers (I think it requires four containers) and pass the drive/volume with my photos as read-only, so I'm sure Immich cannot possibly modify my files.
The last thing I want is the latest solution du jour modifying my files.
I migrated from Apple Photos to Immich a couple of months ago, removing the iCloud subscription, and couldn’t be happier. It was the most hassle free piece of self-hosted software I’ve had so far. Very easy to install and everything just works. Context and OCR search are amazing. Mobile apps could be better, but they are constantly being improved.
My favorite feature is being able to setup a container on my Linux desktop that has a GPU access and can run ML workloads for image processing whenever I turn the computer on, as my NAS (where Immich resides) is a low power machine without a dedicated GPU. They even have ROCM support, so it works even without an Nvidia GPU. Being able to spread such workloads over your local network feels like a magic that has been forgotten in an era of blackbox cloud providers.
I use Google Photos, Apple Photos, and also print to Walmart through the excellent workflow Google Photos has setup. Obviously there has to be a printer in your town.
Make an album, print to Walmart on their pro printer, grab it a little later for a few bucks.
Relying on EXIF is a good thing. But if you limit yourself to ONLY using EXIF, you can't group images, make one image in a group the primary image, assign common metadata to the entire group, etc.
All turned out to be essential in my photo archives, especially as I started scanning old pictures. You get the front and back side of a photo, or you scan a large-format drawing in 16 scans and store them alongside the merged one, etc.
Aperture used to handle it pretty well, but Apple dropped it. I learned my lesson, and now I'll be doing things differently.
I tried this but didn’t have luck. Intel NUC 13 i7 with 16gb ram, Immich in a docker container. Photos on my NAS. The moment I open chrome or Firefox to Immich and get past the onboarding, it just locks up. Maybe 50,000 photos in the library. Disappointing because I really wanted to like it, and have moved pretty much everything else to self hosted.
I sync my photos with an old Raspberypi 3 with Syncthing, then have my own very basic web photo gallery: https://github.com/dariosalvi78/simple-gallery which supports permissions and thumbnails. If you have a sensible folder structure, for example by year/event you don't need anything else. I am also working on face recognition and geo location, but the hardware limitations are challenge (a fun one to solve tho).
I've created a pretty nice picture manager using Neo4j, perceptual hashes, and various latent embeddings but you have to be able to write Cypher queries to use it.
I wish I could just get photos out of iCloud. The iCloud app ok windows doesn’t work period. Authentication issues, taking up CPU but not actually doing anything, and creating empty files that are just shells for what’s in the cloud.
It is so absolutely terrible that I think it is purposeful. But if I could get it all, I could consolidate into something else. Either way, it’s frustrating enough that I’ve stopped buying apple.
I was running Immich for a while until the iPhone client app on my wife’s phone completely stopped syncing photos. So I ended up vibe coding my own photo management software in .NET using PostgreSql/Redis and React front end (PWA). Has face recognition too (used the same models Immich uses from huggingface). Works perfectly, photo library scanning/face recognition/thumbnail creation/etc performance is WAY better than Immich (uses .NET background jobs and lots of parallelism and hardware acceleration on my Mac mini server). Turns out if you only care for the thing to work on your own gear you can optimize the code for it quite a bit. It took 2 weekends and Claude code. And with tailscale, it’s hosted on my Mac mini at home and accessible from anywhere through https. I have around 40k+ photos+ phone videos, and the server is a base Mac mini previous gen (8GB ram). Oh, and forgot to add, the app supports downloading/moving photos from iCloud through the undocumented CloudKit APIs behind the iCloud.com web app, complete with 2fa.
Some time ago I configured Photostructure on my Synology (with the amazing help of the author, @mceachen) and the most paindful part was rescuing my 1.5TB of photos from Google Photos.
Takeout was very cumbersome to use and download 100+ files of 4gb, so ultimately resorted to paying a higher tier at Google Drive, using takeout Google Drive option and the sync to the NAS.
I still don’t have a good method to keep everything in sync as Google Photos does not offer a viable option for a cloud-to-premises sync.
I run it on a credit sized intel N100 board with a few spinning disks. There was nothing to do, it all just worked right away.
Everything is fast and smooth. The AI indexing and search just work™ and it is faster than google photo ever was. And there is no censorship on the AI search terms.
I also like that I can configure the filesystem hierarchy I prefer.
It's a no-name mini PC with four HDD bays. It doesn't seem to exist anymore.
It's a weird Chinese board with a silly gen1x1 pcie link to a 4 port sata controller on a daughter board. I bet it was designed for the 2 port version of the controller and two bays. And some lhow they sold a 4 bays version. So I only have half the bandwidth required to drive the 4xHDDs. Sucks for linux raid.
Interestingly this tiny mobo also has two full speed sata ports on it, that are completely inaccessible, I am not even sure a low profile and thin sata cable can even fit in there. Maybe one day I will try to solder in place from the mobo to the daughter board.
All I want is to automatically periodically backup my Google Photos to some S3 compatible storage like B2.
I want to do that in case Google nukes my account one day for whatever reason.
I have not found any way to do that until today.
In addition, my local network is slow and I don't have much storage I am limited to solutions that are cloud-to-cloud.
I went down the same rabbit hole recently, and there are basically no good options except to periodically do a full Google Takeout of your images. There were tools that used to work, but Google broke them.
One of the many reasons I finally moved off Google Photos.
Google ripped away the functionality to access your original Google Photos files via any programmatic method vs the manual Google takeout.
This was the biggest reason I also had to move away from Google Photos when all I really wanted was protection from getting my account accidentally G-structed with zero way to contact a human to get my files back.
I include video [1] and audio (.m4a) [2] files via EXIF.
For text files [3], I add a JSON block at the top to mimic EXIF.
I don’t want to deal with an additional sidecar file per asset. The risk of losing one during a transfer between systems is too high. It’s a conscious decision and not an oversight.
46 comments
[ 1.5 ms ] story [ 59.0 ms ] threadIf someone wants something I email it to them or upload it to a directory on a web server and send them the link. If I want something on my phone I’ll zap it over with localsend.
Photography is a hobby for me and I have a large family so I have a lot of photos. And a lot of editing to do. Currently moving from Lightroom to Darktable because again Lightroom tries to hammer me with library management and lock me into things.
I've got the solution to this. I'm like you: files on disk. But I also use Immich: and here's the kicker... I pass the drive/volume with my photos to Immich as read-only (I use containers so it's easy: the drive itself is read-write, but Immich only has read-only access to it).
When I'm pissed off by Immich or something better comes along, I destroy the Immich containers and it's gone.
And I still my files on disk (with checksums as part of the filenames, moreover, seen that family JPG pictures aren't files that happen to change a lot and if they change, they can be renamed).
Ouch. One feature I love with Immich is that I can run it as Docker containers (I think it requires four containers) and pass the drive/volume with my photos as read-only, so I'm sure Immich cannot possibly modify my files.
The last thing I want is the latest solution du jour modifying my files.
My favorite feature is being able to setup a container on my Linux desktop that has a GPU access and can run ML workloads for image processing whenever I turn the computer on, as my NAS (where Immich resides) is a low power machine without a dedicated GPU. They even have ROCM support, so it works even without an Nvidia GPU. Being able to spread such workloads over your local network feels like a magic that has been forgotten in an era of blackbox cloud providers.
I lose no sleep.
The funnest part of coming home is what everyone prints when we get back.
Make an album, print to Walmart on their pro printer, grab it a little later for a few bucks.
All turned out to be essential in my photo archives, especially as I started scanning old pictures. You get the front and back side of a photo, or you scan a large-format drawing in 16 scans and store them alongside the merged one, etc.
Aperture used to handle it pretty well, but Apple dropped it. I learned my lesson, and now I'll be doing things differently.
Anyone have info on this vs Immich? I just got my Syn so been trying their native app which seems fine so far but not sure what I’m missing.
Mine is so old that it doesn’t and it’s also under powered - else I’d be running Immich on it.
It has botched slow motion uploading. It uploads an export at 30fps instead of maintaining 120/240fps.
I've stumbled on Immibridge which solved my exact problem perfectly, and uploaded the images overnight
https://github.com/emerysilb/immibridge
It is so absolutely terrible that I think it is purposeful. But if I could get it all, I could consolidate into something else. Either way, it’s frustrating enough that I’ve stopped buying apple.
Without Claude Code, the plugin would probably only exist in my imagination.
I don’t personally care who writes the code. There’s plenty of contributors already.
I run it on a credit sized intel N100 board with a few spinning disks. There was nothing to do, it all just worked right away.
Everything is fast and smooth. The AI indexing and search just work™ and it is faster than google photo ever was. And there is no censorship on the AI search terms.
I also like that I can configure the filesystem hierarchy I prefer.
It's a weird Chinese board with a silly gen1x1 pcie link to a 4 port sata controller on a daughter board. I bet it was designed for the 2 port version of the controller and two bays. And some lhow they sold a 4 bays version. So I only have half the bandwidth required to drive the 4xHDDs. Sucks for linux raid.
Interestingly this tiny mobo also has two full speed sata ports on it, that are completely inaccessible, I am not even sure a low profile and thin sata cable can even fit in there. Maybe one day I will try to solder in place from the mobo to the daughter board.
I have not found any way to do that until today.
In addition, my local network is slow and I don't have much storage I am limited to solutions that are cloud-to-cloud.
If anyone has any idea, please help me out
One of the many reasons I finally moved off Google Photos.
You could manually do it with Google Takeout -> <S3 backed service> before letting your phone sync handle it going forward if that’s a big backlog.
For example, I use Apple and Google on my phone to do this, I think you’d just need to find some app/service combo.
This was the biggest reason I also had to move away from Google Photos when all I really wanted was protection from getting my account accidentally G-structed with zero way to contact a human to get my files back.
I include video [1] and audio (.m4a) [2] files via EXIF.
For text files [3], I add a JSON block at the top to mimic EXIF.
I don’t want to deal with an additional sidecar file per asset. The risk of losing one during a transfer between systems is too high. It’s a conscious decision and not an oversight.
[1] https://github.com/jmathai/elodie/blob/2645bf25b81c63f65d6f1...
[2] https://github.com/jmathai/elodie/blob/master/elodie/media/a...
[3] https://github.com/jmathai/elodie/blob/master/elodie/media/t...