Posted by jamesxv7 20 hours ago
Ask HN: What's the 2025 stack for a self-hosted photo library with local AI?
My goal is to create a system with smart search capabilities, and one of the most important requirements is that it must run entirely on my local hardware. Privacy is key, but the main driver is the challenge and joy of building it myself (an obviously learn).
The key features I'm aiming for are:
Automatic identification and tagging of family members (local face recognition).
Generation of descriptive captions for each photo.
Natural language search (e.g., "Show me photos of us at the beach in Luquillo from last summer").
I've already prompted AI tools for a high-level project plan, and they provided a solid blueprint (eg, Ollama with LLaVA, a vector DB like ChromaDB, you know it). Now, I'm highly interested in the real-world human experience. I'm looking for advice, learning stories, and the little details that only come from building something similar.
What tools, models, and best practices would you recommend for a project like this in 2025? Specifically, I'm curious about combining structured metadata (EXIF), face recognition data, and semantic vector search into a single, cohesive application.
Any and all advice would be deeply appreciated. Thanks!
take my photo catalog stored in google photos, apple pictures, Onedrive, Amazon photos. collate into a single store, dedupe. Then build a proper timeline and geo/map view for all the photos.
Example: https://rclone.org/googlephotos/#limitations
Glaring example:
> The current google API does not allow photos to be downloaded at original resolution. This is very important if you are, for example, relying on "Google Photos" as a backup of your photos. You will not be able to use rclone to redownload original images. You could use 'google takeout' to recover the original photos as a last resort
In fact I would go so far as to say my personal photo management never really recovered from the transition.
Stock NC gets you a very solid general purpose document management system and with a few addons, you basically get self hosted SharePoint and OneDrive without the baggage. The images/pictures side of things has seen quite a lot of development and with some addons you get image classification with fairly minimal effort.
The system as a whole will quite happily handle many 100,000 files with pretty rubbish hardware, if you are happy to wait for batch jobs to run or you throw more hardware at it and speed up the job schedules.
NC has a stock phone app which works very well these days, including camera folder uploads. There are several more apps that integrate with the main one to add optional functionality. For example notes and voip.
It is a very large and mature setup with loads of documentation and hence extensible by a determined hacker if something is missing.
The addition of an AI tool is a great idea.
It gives a sort of high level system overview that might provide some useful insights or inspiration for you.
The ball-ache of SQLite not scaling outweighs any "maintenance" Postgres needs (it really is just set-and-forget and use a Docker container to schedule database backups—whole thing takes a couple minutes).
Also considering the type of workload, I imagine photo albums to be write heavy upon photo imports but read heavy afterwards which sqlite should excel at. I'll mostly be syncing pictures from our phones, and it'll be me and the wife using it. Postgres is overkill for my needs.
What about having to do db migrations across major updates?
1. The Immich app's performance is awful. It is a well known problem and their current focus. I have pretty high confidence that it will be fixed within a few months. Web app is totally fine though.
2. Some background operations such as AI indexing, face detection and video conversion don't work gracefully when restarted from scratch. They all basically first delete all the old data, then start processing assets. So for many days (depending on your parallelism settings and server performance) you may be completely missing some assets from search or converted videos. But you only need to do this very rarely (change encoding settings and want to apply to the back catalog or switch AI search model). I don't upload at a particularly high rate but my sever can very easy handle the steady state.
1 is pretty major but being worked on and you can work around it by just opening the website. 2 is less important but I don't think there is any work on it.
I expect we will see a Qwen 3VL soon.