Hacker Newsnew | past | comments | ask | show | jobs | submitlogin






I wanted to like Photoprism because unlike Ente and Immich, it supports SQLite databases and doesn't require postgres (I want to keep home lab maintenance to a minimum) but the UI was difficult to like and I couldn't get hardware encoding working on my Intel N100 GPU.

What about Postgres isn't low-maintenance?

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).


“SQLite doesn’t scale” is a common belief, but simply not true. It has limitations on certain sorts of loads, but you won’t run into them on this sort of app—in fact, I would expect consistently better performance from SQLite than from PostgreSQL in typical apps like this. And then SQLite is definitely easier to maintain, being just files.

I'm only now just starting out my on prem photo library and have a couple of thousand which sqlite with WAL seems to have no problems with.

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?


Have you tried all of these? How are they with very large photo collections?

I've used PhotoPrism and Immich. Everyone's definition is different I have about 100k photos and videos which are a bit over 1 TiB (original data, not thumbnails and previews). Nether had any performance issues with a few minor exceptions on Immich (I don't recall anything from PhotoPrism but it has been a while now since I switched)

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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: