Live data from Hacker News

Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

news.ycombinator.com

111–120 of 124 posts

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#111

Earlier quoted context omitted.

Immich is what I'm using right now. I'm running it in a Docker container on my Synology. It was very advantageous to spin up another docker container on my laptop to do the face recognition work because the Synology was going to take forever on it. We no longer are auto uploading to Google or Apple. So far, I really like it. I haven't quite gone 100%, as we're still uploading with Synology's photo app, but Immich pro…

If you want a solid "just upload the photos" experience, PhotoSync on iOS is really great. I think you can use Immich to just look at a folder and not use the backup from phone bits.

I tried PhotoSync, but it feels like a really misleading name. When I delete photos from my phone, they don't delete on the sync destination, so it's not actually a "sync".

So my photo storage on my home server is getting filled with a bunch of useless images that I only have on my phone temporarily and that I end up deleting shortly after.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#112
post #109

Earlier quoted context omitted.

I understand what e2ee is, thank you. I just don't think it’s justified for self-hosted photo servers . E. g., “Any operations / transformations” includes facial recognition, CLIP embeddings, &c; you want to run this on the server, overnight, and to be able to re-run at a later date when new models become available. Under e2ee, that’s a round-trip through a client device at every model update. So that’s a significant…

I was explaining why e2ee has important upsides, not how e2ee works. With Ente (and I think Immich as well), facial recognition and generating new CLIP embeddings are done on-device[0], usually right when the photo is taken / before they're uploaded to the server. [0] https://ente.io/blog/image-search-with-clip-ggml/

Immich does it on the server.

What happens if there’s a new, better model? You’d need to re-download, decrypt, and run inference on all your past media, which is in terabytes for many.

I understand the benefit of e2ee in a situation where there is no trust between user and admin. In personal self-hosting, that’s the same person (or family), and the upsides are not as relevant. The downsides (possibility of data loss for, e. g., kids who are not very good with passwords/keys; difficulties with updating models / thumbs; …) remain important, and outweigh the benefits, even assuming the e2ee is implemented well.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#113
post #76

Earlier quoted context omitted.

Memories and Recognize work fine with the base Nextcloud docker image. My host has a GPU so I use go-vod to leverage hardware transcoding. The base NC docker image can't access Nvidia cards (probably other GPUs as well). I could script in a way to do this but would need to run it after each update. Recognize runs fine on my CPU so I haven't explored this yet. I have an OpenMediaVault VM with a 10tb volume in the netw…

Do you know if there's any way to `Recognize this image now` via the GUI? Whilst twiddling my thumbs for a few decades of photos to import, I go through what's there and occasionally a family member will point and tell me who a pic is of, but can't seem to immediately prioritise or `Recognize` the specific pic so I can add a name to the face.

No way to do it straight from the GUI. If you get the OCC web terminal plugin, you could use a command to get recognize to scan for new files. Properly configured notify_push and cron jobs should get Recognize going within 10-15 minutes after a new file upload, but it depends on what else is in the queue and the server's processing power. The initial runs need to finish before any of this is relevant, though.

Once you get everything ingested and the initial classifications and clustering done, the process runs pretty quickly as you upload new photos.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#114
post #76

Earlier quoted context omitted.

Memories and Recognize work fine with the base Nextcloud docker image. My host has a GPU so I use go-vod to leverage hardware transcoding. The base NC docker image can't access Nvidia cards (probably other GPUs as well). I could script in a way to do this but would need to run it after each update. Recognize runs fine on my CPU so I haven't explored this yet. I have an OpenMediaVault VM with a 10tb volume in the netw…

Who's your host?

selfhosted at home.

I'm using OPNsense as the main firewall/router, with the HAProxy plugin acting as reverse-proxy. Cloudflare DNS proxies my home IP address and keeps it hidden from the public, and the DDNS plugin in OPNsense updates the A record in CF when my ISP changes my public IP address every few months.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#115
post #112

Earlier quoted context omitted.

I was explaining why e2ee has important upsides, not how e2ee works. With Ente (and I think Immich as well), facial recognition and generating new CLIP embeddings are done on-device[0], usually right when the photo is taken / before they're uploaded to the server. [0] https://ente.io/blog/image-search-with-clip-ggml/

Immich does it on the server. What happens if there’s a new, better model? You’d need to re-download, decrypt, and run inference on all your past media, which is in terabytes for many. I understand the benefit of e2ee in a situation where there is no trust between user and admin. In personal self-hosting, that’s the same person (or family), and the upsides are not as relevant. The downsides (possibility of data loss…

You do you, but the trust is beyond just admin and users. And family photos are treated as treasures. Data loss is a fair point, but if you're self-hosting a photos app I imagine server/db backups are part of your routine. Account recovery is all that's needed to recover lost photos from there. Well, unless your VPS is compromised in a manner of data loss for longer than you wished before your backups ran, in which case it's still better that such sensitive info was e2ee'd.

edit: also feel like I'm echoing the classic dropbox comment, but self-hosting in a sane and secure manner is harder than it's made out to be. It needs to be taken seriously.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#116
post #112

Earlier quoted context omitted.

Immich does it on the server. What happens if there’s a new, better model? You’d need to re-download, decrypt, and run inference on all your past media, which is in terabytes for many. I understand the benefit of e2ee in a situation where there is no trust between user and admin. In personal self-hosting, that’s the same person (or family), and the upsides are not as relevant. The downsides (possibility of data loss…

You do you, but the trust is beyond just admin and users. And family photos are treated as treasures. Data loss is a fair point, but if you're self-hosting a photos app I imagine server/db backups are part of your routine. Account recovery is all that's needed to recover lost photos from there. Well, unless your VPS is compromised in a manner of data loss for longer than you wished before your backups ran, in which c…

e2ee prevents account recovery.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#117
If you want light configuration requirements with no database, you can try to enhance https://gitlab.com/paolobenve/myphotoshare. MyPhotoShare is a static photo-gallery where AI features have been added through extensions of the parser. This is a one-developer project, mostly Python and JavaScript, and he is open to contributions.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#118
post #81

I think a really valuable feature in a photo library app would be something that can identify sets of very similar or identical photos and decide which one is the "best" and offer to discard the rest. I must be wasting so much storage on the 4 photos I took in a row of the family pose, or derivatives that got shared on whatsapp and then stored back to my gallery, and so on, and I know I'm not the only one.

Both Immich and PhotoPrism do have this feature: https://immich.app/docs/administration/system-settings#dupli... https://docs.photoprism.app/user-guide/library/duplicates/

Do either of these offer suggestions on which of the duplicates to keep? That to me is the killer feature - it can be paralyzing trying to assess which one is "best" and I think a well-trained AI could do a good job of it.

Re: Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?

#120
post #116

Earlier quoted context omitted.

You do you, but the trust is beyond just admin and users. And family photos are treated as treasures. Data loss is a fair point, but if you're self-hosting a photos app I imagine server/db backups are part of your routine. Account recovery is all that's needed to recover lost photos from there. Well, unless your VPS is compromised in a manner of data loss for longer than you wished before your backups ran, in which c…

e2ee prevents account recovery.

People have found decent solutions for that. Proton's is essentially a backup password/phrase or a file you keep safe. Not as simple as a magic link, and could still lose your backup phrase/file, but alas. Security is always a compromise on convenience.

[0] https://proton.me/blog/data-recovery-end-to-end-encryption

Post reply on HN