Hacker News new | past | comments | ask | show | jobs | submit login
Photoprism – open-source Google Photos Alternative (photoprism.app)
501 points by lom on Feb 8, 2023 | hide | past | favorite | 155 comments



I once was complaining about nextcloud photo gallery and someone recommended Photorpism [1]. It has been day/night difference - I wanted a simple gallery that enables viewing my mess of unorganized photos. Yet, for it to be simple on UX, it had to be complex under the hood - has to self-organize based on metadata/AI, duplicate detection, generate thumbnails on his own, etc - and this is what Photoprism is.

Photoprism has superb performance - I have no lag going shifting through many, many photos.

Nextcloud lately upgraded their gallery, but it is still slow. It generates thumbnails on-the-fly. Maybe I can configure it somehow (I tried for v1 gallery but failed). Anyways, Photoprism is great and works out of the box. I like that I can select photos from different folders/views and do with selected photos something (like add to an album).

Moreover things works (Except delete, but archive is OK) for readonly volume, which is handy to mount nextcloud folder.

However a thing to note - you cannot use RPI4 with 2GB to use AI features - at least I had many other services running and RPI was lacking. But viewing photos was still good.

[1] https://news.ycombinator.com/item?id=31988575


I recently found nc-photos [1] which also aims to reproduce the Google Photos UX. It does its own indexing so it is a bit faster than the Nextcloud Photo Gallery but probably way slower than Photoprism. The main advantage of nc-photos is that no software installation on your server is required. It just works as a mobile app with an existing Nextcloud instance.

[1] https://gitlab.com/nkming2/nc-photos


> lately upgraded their gallery, but it is still slow. It generates thumbnails on-the-fly

generating thumbnails on the fly doesn't have to be slow. It can be slow and often is as most implementation would rely on something like image magick or similar tool but you can get several order of magnitude faster if you go deeper.

I've spent a lot more time than I would dare to admit on that exact topic while working on my OSS project (https://github.com/mickael-kerjean/filestash) and I figured you could build tailored tool in C that rely on say libjeg and leverage very low level tricks like DCT scaling to do things much faster. Typically in Filestash creating a thumbnail takes about 15ms for a picture taken from my camera and it doesn't make a raspberry pi to break a sweat.


Opening gallery shows you many images, lets say 40. You can't support fast scrolling if you are going to generate 100 thumbnails per second.

Whereas it works for photoprism. I can scroll fast or open a picture and just hold my arrow and it will shift through the pictures.


Unfortunately nextcloud seems pretty slow in general. Seems like their webdav implementation is quite slow as well.


Nextcloud has a Preview generator plugin that lets you generate thumbnails in advance. Unfortunately Nextcloud is the only gallery suitable for me because of its groups file access system. None of the other gallery apps have it. If anyone has suggestions for apps with a good access system, please let me know.


Nextcloud Gallery has the benefit of being in Nextcloud with all my other stuff, with companion phone app and syncing and whatnot set up already on my home server. I wish (fully anticipating a "PRs welcome" retort) that it would have more of Google Photos's AI features.


Nextcloud's usual attitude alas is "PRs welcome, but fuck you if you want documentation or help, pay us". Nextcloud burned through several photo/gallery apps that ended up being dropped because of maintainer burn out, and the obtuse and opaque APIs make it really hard for outsiders to pick it up.

(We tried to make companion addons to improve photo metadata, etc. for several years, but eventually gave up because Nextcloud is too awful to work with from a dev's perspective.)


For me this almost completes the use case. The only sad part is that there is no 2-way sync for the mobile apps. It's a 1-way sync, where pics on your phone get pushed to the server but whenever you delete them from your phone, they stay in the server, effectively making you do double clean up. Ain't nobody got time for that.


That is an obvious feature, not a bug! This is so that you can delete images on your phone to reduce the use of absurdly expensive phone storage, while still retain your precious history in pictures on the server.


Photoprism is great at what it does but it's not a Google Photos alternative. It doesn't auto-backup photos from your phone like Google Photos.

I'm currently using Immich and although it's still a while away from having a stable release, it shows a great deal of promise. I like that it's being built with a clearly stated purpose of being a Google Photos alternative. It may never be as seamless or smooth as Google Photos, but I think it will be perfectly enough for privacy-conscious self-hosters.


FWIW there are a _ton_ of apps for both iOS and Android that will back up your photos and videos to your home NAS/server. Whatever you go with, ensure the files aren't being mucked with during or after the transfer--Google Photos on Android may omit and/or change some metadata tags, for example.

I personally use Resilio Sync [1] (for iOS and Android) and have tested SyncThing [2] (for Android), and PhotoSync [3] (for iOS and Android). They all work well.

[1] https://www.resilio.com/individuals/ [2] https://syncthing.net/ [3] https://www.photosync-app.com/home.html


Syncthing is an option, but it's typically for a different use case. Most people will want their photos backed up in a way that means they can delete the photos on their phone and still have a copy, but Syncthing would delete it on the NAS end as well.

There's an ignoreDelete option but the docs advise against using it[0] and IIRC the developers want to remove it.

[0] https://docs.syncthing.net/advanced/folder-ignoredelete.html


There is a one way sync. So I sync from various phones to my server for Digikam / Photoprism to consume


One way sync would stop your server syncing back to the phone, but wouldn't you still need the ignoreDelete option to stop deletions on your phone syncing to your server?


You know, I think you're right. Will have to test that.


The trick is to sync to the import folder and let photoprism import them, which removes them from that folder anyways. So your phone deletes have no effect, since the photos are not in the import folder anymore. I have my imports run every 10 minutes, so there is never a huge buildup of photos to process at once. It's been working great so far


Yeah, I do move them to Digikam's folders for processing, so not a risk of actual deletion.


Syncthing can do this and much more. Its the absolute best option to sync anything anywhere. It is very flexible, uses local connections, can only sync on wlan/certain wlans. The only thing that could be better is UX - for novel users its not so easy to understand. But people hanging out on HN should choose it as its just great!


I agree it's very good, and I use it for a lot of other folders eg notes, but I don't see how to use it as a backup tool for photos, without either using the option linked above or copying/hardlinking elsewhere on the NAS end. Unless there's a setting I'm missing that stops it from deleting on the NAS end?

EDIT: Don't get me wrong, it's my favourite file syncing tool, especially as one of the few open source syncing solutions. But I worry it always gets recommended as a backup tool and people don't realise it'll also sync deletions, so they'd suffer data loss.


Oh, I do use ignoreDelete. I additionally use git-annex on the receiving side, with the daemon running, so it automatically annexes the files and pushes to long term backup that way.


The docs mention photosync to back up images

https://www.photoprism.app/partners


One thing I've done as well is to set up a simple script which gets run from a cron job and will let me know via email if it hasn't seen any new photos uploaded for 3 days (it's pretty unusual I'll go 3 days without taking a single photo on my phone). This provides a simple early warning for things like backup/sync apps getting killed by aggressive phone power management.


Syncthing doesn't run on iOS and despite having paid for PhotoSync it doesn't work right.

Resilio also doesn't appear to run on iOS.

Apple is very anticompetitive wrt iCloud Photos. There are not a ton on iOS.


Syncthing has been ported to iOS as Möbius Sync. https://www.mobiussync.com/ I used it for a while and it worked.


Nope; this is some $5 IAP nonsense. I refuse to support people who rentseek on top of f/oss.


There is no point talking about iOS, You don't use Apple devices if you value freedom and open source anyway.


What if you value privacy, smart guy?


Well, on the Apple device itself. I upload my photos to Wikimedia Commons.


Thanks for the links! Didn’t know about these others. I’ve been using PhotoSync, but it’s automation options are kind of lackluster


> It may never be as seamless or smooth as Google Photos, but I think it will be perfectly enough for privacy-conscious self-hosters.

This struck me... Us techy people should be able to use our knowledge to get more out of our tech setups.

But lately I've felt that opensource tooling has been falling behind. My mum can post a video to YouTube for everyone to see in seconds, but if I try to do the same with opensource tools, I will probably still be battling a bad transcode from ffmpeg that glitches on some family members phones and doesn't have sound for other viewers...


Well, make no mistake, the large ones use ffmpeg too ;) The secret is in the flags.


What glitches are there in ffmpeg? The problem here is a resource imbalance inherent in the difference between proprietary big tech platforms and often individual self-hosted software. While some of these self-hostable software are of high quality, these will never match the resources that Google or Facebook has. They can't afford to fix every issue in existence, because they are often volunteer projects making little to no money. Techy people understands this tradeoff, and proceeds with open source tools, because they are aware the situation that proprietary platforms can put them in and they would like to avoid it.


The glitch isn’t in ffmpeg, it’s in the receiving phone since you sent them a format which isn’t supported by that phone’s hardware decoder. The trick of youtube isn’t just a quick upload, it’s the auto transcoding to formats for anything that requests it over any arbitrary link speed.


Yep. And if the opensource world wanted to match that functionality, you would want ffmpeg to have an option to output all common formats, packaged together in a mega-file.

Then, when a user wants to watch a video, they could use HTTP range requests to download just the data they want to view from the megafile, in the format they need. If, midway through watching, their internet gets a bit slow, the browser could auto-switch to a different lower-res format. The megafile would have the necessary indexes etc to know which timestamps of which audio and video feeds are at which byte locations, and where keyframes are for easy switching.

Things like youtube have proprietary code to do this. But the opensource world doesn't have much comparable - at least nothing widely deployed to be able to just send a video to a friend, and know that whatever device and internet connection they have, they'll have a good experience.


> This struck me... Us techy people should be able to use our knowledge to get more out of our tech setups.

You are going up against a probably 1000s strong team of equally techy people whose job it is to do what you are trying to cobble together. Unless there is a niche use case that you are trying to workaround, it is hard to solve a mainstream problem that isn't solved better by one of the Big Corps.


I was thinking about this. It would be great to have easy plug and play server services.

It would probably end up a mess like Wordpress plug-ins. But Wordpress works and it easyish for non technical people to set up..


Why wouldn’t you be falling behind? YouTube has tens of thousands of full time hackers. It’s the height of silliness to imagine that some disorganized hobbyists can match the experience.


Beyond that, since these projects are rarely usable enough to get a critical mass of non-technical users, they just morph into beautiful, powerful core applications wrapped in a janky, thin wrappers that people call a UI.


It supports WebDAV, discusses that in the docs, and links to an app that does well enough at backing up a phone to start off. Not seamless like Google photos for sure, but not nothing. https://docs.photoprism.app/user-guide/sync/webdav/


Many people suggest that you can auto-backup with whatever other tool works, and indeed there are a few choices.

But that misses the point, which is that in Google Photos you can manage the same collection from the phone or from the web. Adding a pic to an album should feel the same, no matter whether the pic is already synced or not yet synced.


This does make sense as a more specific UX/workflow complaint, google photos and similar setups are going to do much better with that. You can use the PWA on mobile after the sync runs, but it's not going to be the same as native apps on mobile and server that manage syncing behind the scenes. So definitely a downside if most of your photo management happens on the phone.


You can be the one who complain and yell at clouds, or the one who contribute for everyone to a better world.


I've already committed financially to Photoprism. Not that it is any of your business.


I'm using photosync with photoprisim and it works fine to autosync photos off, with the only caveat being that i'll occasionally close the app and it won't run for a few days/weeks.

Not as seamless as iCloud Photos but it works great.


I use PhotoSync as well, I setup a shortcut/automation that runs it anytime I connect to home Wi-Fi, after a 30 second wait and SSID check to prevent false positives.

I still have to click the notification, due to iOS limitations but having the notification show serves as a good reminder to run it.


Photoprism itself recommends PhotoSync.

I don't see a problem in using multiple different products to do the job for me.


I've been using it, and once it gets a stable release it looks like it'll be awesome, but right now it's pretty buggy. The new immich-proxy docker image doesn't work, so you have to use 1.45, and I've been having very odd issues with immich-postgres (it changes the permissions of the pg_data folder to 700 and owner to systemd_coredump... Not good.)


That's awesome! Thanks for sharing. I had a go at all the contenders a while ago when Google Photos changed their storage policy and did not see that one.

I see a sharing menu in one of their screenshots. Considering that it's self-hosted, how does sharing work in that system?


You can create multiple users on your server and share your albums or individual assets with them. You can also create public sharing links that anyone can access, just like Google photos. You'll of course need to make the server accessible to them in some way.

My server is hosted at home in a Raspberry Pi and an SSD for storage. I have a public domain name and it is forwarded to my home network through CloudFlare. Might be a little risky security-wise, but I want to eventually make this instance usable for my parents.


You can host Photoprism[1] with Pikapods[2] and upload your pictures using PhotoSync[3] and then sync(backup) all your pictures to Hetzner using their Nextcloud hosting[4]. Pikapods is in LA and Hetzner is in Germany. This provides a good reliable setup for your invaluable pictures. This is what I use and I am very happy with, I don’t mind paying more than Icloud knowing that I am supporting open source products. [1]https://www.photoprism.app/ [2]https://www.pikapods.com/ [3]https://www.photosync-app.com/ [4] https://www.hetzner.com/storage/storage-share


Hetzner is now also in US East and West but not sure if just their cloud products (VPS etc) or also hosted offerings such as their nextcloud


There are a few apps in this space worth checking out

Photorprism

Photostructure

Lychee

Digikam

Synology Photos (if you have a synology)

And probably a few others I am forgetting.


Howdy! I'm the author of PhotoStructure.

If you're thinking about self-hosting anything, my first recommendation is to get your backups in order now, before doing anything else. I wrote this a while back: <https://photostructure.com/faq/how-do-i-safely-store-files/>. Having a full, offline backup will only cost ~$20/TiB nowadays, which is cheap insurance if whatever app you try out doesn't quite behave as you expected it to.

The second step is to make sure your server is both hardened (<https://forum.photostructure.com/t/server-hardening-for-begi...>), and ideally, only available via a VPN (like TailScale) or at least via a reverse proxy (Cloudflare has a free solution). I compared and contrasted some of these solutions (along with instructions) here: <https://photostructure.com/faq/remote-access/#accessing-your...>

The situation for self-hosting your photos just a couple years ago was pretty bleak--especially if you had hundreds of thousands (or more!) of photos. That may sound like a lot of photos, but for people shooting digital for 20+ years, it really isn't!

Whatever image manager you pick, make sure the app follows existing metadata storage standards, so in the (seemingly inevitable) future when the app is abandoned, your photos are in directory structures that make sense to you, and the work you've put into organizing them isn't locked up in unreadable databases or folder structures.

Spoiler alert: I got burned by this issue with prior apps, so I designed PhotoStructure from the ground up with exactly this in mind: <https://photostructure.com/faq/why-photostructure/#open-stan...>. Unfortunately, many/most self-hosted solutions don't handle multiple source directories and configurable destination directories.


As a user (soon to be paid, life keeps getting in the way and I keep forgetting), I highly recommend Photostructure over Photoprism.

I don’t have my notes here, so I can’t elaborate much why. But the gist from my memory is that photoprism has a lot of features, and naturally no single user is gonna needs all of those. But the installation is quite a bit more painful, and it is slower as a result. I recalled it building tensorflow on my freebsd machine when installing (which failed, due to bazel failing to build, due to them hardcoding an url download of a library which recently got updated and the link doesn’t work, you get the idea).


Installing photoprism using docker is as easy as it gets. I'm curious to try photostructure too. Looks like more advanced duplicate detection and throwing random photos at you. Nice :)


From the page:

> When you view your PhotoStructure library’s home page, you’ll see a random selection, or “sampling,” of images from your library. When you click When, you don’t see all photos in reverse-chronological order, but instead, a random “sample” of images from every year. Click on a year, and you’ll see a random sampling from each month.

This is... just horrendously bad


It’s actually a nice feature that gives you exposure to photos you would not otherwise see. It’s one of the main things I miss from Photostructure (beside the speed) now that I use photoprism.


YMMV but I want a chronological view in gallery, and a powerful search.

When I go back in time, same.

"On this day X years ago" is fun, but very optional.

Just random things presented to you... That is just weird.


Enjoyed your article on backups. I was intrigued by the idea of NAS as a solution to bit rot, but when I looked at NAS products, sticker shock dampened my interest. I've been using git-annex so I looked into how it deals with bit rot. It shares the same backup philosophy as git: lots of copies to keep stuff safe.

See https://git-annex.branchable.com/todo/Wishlist__58___Parity_...


Thank you for sharing, looks like an amazing project! Exactly what I’m looking for, and I love your flexibility about just making two separate instances for me&my partner to each have our own. (only way it would be better is if it were open source, or even just a contract making it become permissive open-source in case the company shuts down.)

Regardless, I’m in a bit of a weird situation for the next few months with regards to my home server setup, but I’m bookmarking this to come back & will be absolutely paying for the upgrades too. Thanks for your awesome work!


Do you have a demo for PhotoStructure? Didn't see anything on the site. I'm really looking more for a Picasa replacement that respects my file structure and displays it as such.


Sorry, it’s been on my todo list for a while. The UI is pretty simple (by design): there's only the initial welcome and settings pages, the asset page, and the tag gallery. Screenshots are all on <https://photostructure.com/faq/why-photostructure/>

I normally suggest people just try it out on their stuff—it runs pretty much everywhere. Hop into our discord <https://phstr.com/go/discord> if you have any questions or comments, I’m online.


I will add immich which has been getting good development lately.

https://immich.app/

https://github.com/immich-app/immich


Synology Photos doesn't get much of a mention here because it's tied to the Synology brand of NAS products, but I have to admit that it's one of the best Google Photos replacements out there even though it's lacking features that they've implemented in their previous app, Moments.

I really love it because it does Google Photos' backup workflow where it backs everything up automatically, and allows you to clean up local storage for photos saved in the NAS, and it works reliably for both Android and iOS.

It's a feature that's absolutely necessary when managing phones and tablets from family members who aren't tech-savvy but definitely need to back every photo up without clogging up their phone storage.


I find it has its priorities backwards. Fancy search? Check. Fullscreen slideshow? Nope, sorry.


Is there an alternative to google photo without all the upselling?

I'm setting up setup a new phone which has google photo as the default gallery app, and if you're not in the US and/pr don't want to use the google services, most of the stuff you have in the menus is literally worthless.

The "print service", for one. It's right in your face most of the time, but there is no option to turn it off if you basically can't use it.

I've been using "Simple Gallery Pro", but it lacks basic video editing support. I don't need anything fancy, but trimming videos is something you often need to do for sharing.

Any recommendations on the same vein?


There's also IMMICH, pretty much a 1-to-1 clone of Google Photos.


Do any of these work with S3 and EC2? I would like to host a Google Photo's like app myself on AWS.


Funny, for the last week I've been trying various self hosted photo apps every night on my home server. Tonight was going to be Photoprism and then I see it pop up here! I've just wanted something that allows me to organize and tag photos, but that also has some sort of API or easy access to the database. I've been looking for something because I realized it'd be nice to see photos on a regular basis in my house: I want to set up a photo frame to display random photos from my family collection that have a particular tag. Otherwise I feel like I'm not going back and appreciating them enough, just taking pictures that are never seen again. Though photo app "memories" address that. I really like Photostructure's approach of always displaying a random sampling of photos when you're at higher organizational levels, that's a fun way to see different stuff.


My daughter, bless her, occasionally likes going through our old home videos which are accessible via Kodi on the TV in the main living space (easily accessible). I rarely actively go looking through old photos and videos, but when my daughter starts them up, everyone migrates into the room to watch them.

I've had a damn good life, and my kids have had a damn good childhood and my wife and I have done a damn good job of parenting.

It's so nice, and incongruent with 'the daily news cycle', to be reminded of these beautiful things, and it's also a reminder to continue the effort, because it really is so worthwhile.

When I'm too old to do much else, I want to retire into my past.


That's wonderful to hear!

I actually had to stop using my own library to develop PhotoStructure, because I'd lose an hour or two just hopping through different memories.

I think reminiscing and story telling is the real value proposition here.

If the people in the photo aren't around to tell why a given video or photo or event is relevant, the context is lost, and the relevance of the photo, video, memory, or event is lost as well.

I think printed books with longer descriptions about any given photo or event can help retain relevance. I haven't really seen a DAM or image manager address this issue directly though.


> When I'm too old to do much else, I want to retire into my past.

I’ve never heard it stated quite like that.


How about this:

My childhood was for my parents.

My children's childhoods were for me and my wife.

I don't have much of a personal recollection of my own childhood outside of photos and home videos. I know I had a happy, healthy childhood, but I don't recall specific moments of joy, at least not in the way I can recall and literally re-feel moments of joy captured in photos or videos of my children living through their childhoods.

I lived through their childhood as an adult, so I'll remember it, and be able to recall the joys and disappointments and fun. The same must be true for how my parents experienced and can recall my childhood.

Your childhood is for your parents.


That's probably true and apparent in the midst of parenting. We say kids don't know how great they have it - and it's true. But we adults do and we should bask in it as much as possible.

I'm a nostalgic and expect to become even moreso as I age.


Sadly the negative experiences are much more negative than the positive ones are positive.

When we get / do / have something REALLY want, the satisfaction will wane very quickly. When something bad happens, it will follow us for months.


> When we get / do / have something REALLY want, the satisfaction will wane very quickly.

REALLY wanting things is, IMNSHO, indicative of not yet having reached a full level of maturity. I've felt the emptiness of the satisfaction of consumerism enough times to be able to suppress my immediate emotions and apply a thick layer of reality to it (generally along the lines of 'when the fuck am I going to have time to indulge in that, in amongst all these other things that I do with my time, I'd rather have the money than the thing sitting in a corner as another reminder that I have but one life to live'[0])

Also, focusing on the negatives is a choice. Bad things are to be moved on from, not to remain tethered to. (admittedly, this is incredibly variable depending on the psychological damage and susceptibility of the individual, but even so, one must always try to not let past negativity define the future).

Something I REALLY wanted, was to be able to rollerskate backwards (noticeably not a material thing, but a personal achievement / goal). Took me 18 months of monthly / weekly conscious effort and discomfort, but fuck, I can fucking do it, and look like a pro at least through an amateur's eyes. I'm telling you, that satisfaction doesn't wane! Not for me anyway. That's a fucking lifetime achievement for me, at my age, and I don't care if it would be two weeks work for a 10 year old.

[0]I've recently commented to my long-suffering better half that it feels as if we're trying to squeeze one and a half lives into one.


It does apply to consumerism and you're right when you say we should let too much of this in to our lives.

Was more thinking along the lines of the satisfaction of say having a "perfect" child or your dream job (whatever that may mean to you) vs one that has a grave illness or a job that truly blows. You're going to suffer much more from the latter then find joy from the former.

Or for example your salary. If you suddenly get double, the joy / satisfaction from that will wane fairly quickly even if a few weeks before you imagined it would solve all kind of problems.

Or the toughest one imho: being a relationship with your dream girl / boy vs that relationship ending. You're probably not going to wake up every day thinking you're super happy but if you really get your heart broken you'll suffer for months on end.


We have a computer in the kitchen with the simple default photos screensaver pointing to our years of pictures constantly updating. It's really fun to just see random photos of things you've forgotten about. We've all pulled each other to the kitchen to check out a photo or two.


My wife and I live states away from our respective families and once our first was born we started a self-hosted wordpress blog. Photoprism has been amazing to create albums that I later edit and document on a personal blog that the long distance families can access. We found it enjoyable to put together a post each month with some of our favorite photos and memories. Everyone else seems to love it as well. We are now working on putting together some posts on past vacations and other moments we want to remember. The combination of photoprism for viewing and wordpress for storytelling has been a perfect combination for us.


I need to check again. The last I used it a few months ago, the features were working, but had usability quirks. For example, the automated scanning would tag faces of people, but ofcourse it is not perfect and has misses or false tags - but there was no way to manually tag faces or correct the mistakes. Because such a thing was pushed until a new photoviewer was developed. Such a thing told me that the project was not ready for serious alternative to Apple Photos/Google Photos _yet_. I chose to wait and watch instead.

It would be very nice to have an open alternative to the Apple/Google ones.


I don't think I'd bother treating it unless face detection was at least as good a Picasa was (in 2008?). It astinishes me that this feature isn't available on any photo organiser app on Linux.


I also self-host this together with Tailscale. The UI is not very polished but certainly very usable already.

My personal journey was to get rid of my dependency on iCloud Photos. I managed to export two-decades worth of pictures and videos using a separate tool (https://github.com/RhetTbull/osxphotos) and then import into PhotoPrism. Coming from Apple Photos, the UI is a bit lackluster but the freedom of owning the entire data more than makes up for it.


Have you been able to export meta data from iCloud and import it into PhotoPrism? (e.g. custom photo comments)


I personally do not have any photo comments but I suppose the software can handle it. From https://github.com/RhetTbull/osxphotos#command-line-referenc... I think it will support exporting XMP metadata files with photo comments. Then from https://docs.photoprism.app/user-guide/use-cases/apple/ I think PhotoPrism will correctly import descriptions in XMP files.


i have one pet peeve with every photo organizer or gallery i've tried: they are slow.. especially for very large galleries. if you read the original google blog post about how they built photos, a lot of effort went into performance. so i took that as inspiration to start building an open source offline-first organizer that takes this performance to your desktop (and up a notch). its not on github yet, but seeing the enthusiasm here i thought i would ask what else would you want to see in it? my hn username is also my github username, for the curious :)


I found very FAST folder-based photo viewer:

https://github.com/bpatrik/pigallery2

The word "fast" is the first word in their description. I'm using it for about 2 years now, hosted on my Synology


I am not sure where my bottlenecks are but I do not have a ton of photos but specific operations are incredibly slow in EVERY photo tool like scrolling through dates and loading thumbnails.

Are these use cases you optimize for?

I'd love to see what you're working on =P


exactly!!! yes they are. for thumbnails im using webP which achieves much better compression than the more standard png (like 10:1) which enables us to do a lot more with them. and when navigating fullsize photos, using some intelligent preloading so we never bog out :D

i'll try to get some initial commits pushed up soon. u can follow me here, the project is called montage (open to suggestions on name too lol):

https://github.com/conceptualspace


Great project, congrats for building it!

> Also, there is no native support for sharding or cloud storage APIs like S3. Instead, PhotoPrism prefers a fast, local solid-state drive.

Won't use it myself though, as such solution should be centered around s3-like cloud storage with e2ee. Only the index should be in the server (and backup-ed).


Well I have to appreciate the design choice since where I am internet is slow and unreliable. I couldn't imagine having to fetch each photo over the internet just to browse from my own home network.

But there should be a feature to at least sync to a cloud service for backup purposes.


It's mostly about costs.

I have 1 Tb of pictures.

For example DigitalOcean: 1 Tb volume storage (without the instance) is $100/mo.

S3: $13/mo (most would be infrequent access) + traffic would prob be free (100Gb/mo, I don't think I would read more than that).

I am not interested in single servers that can crash on a low-cost provider that can catch fire, get my account deleted because of a software bug, get stolen at home, etc.


Hetzner Storage Box might fit you. Proper host, nice track record, hosted in Europe (probably matters, if you're not there, latency won't be great), unlimited traffic (as long as it's proper traffic) and cheap (no traffic cost nor setup).

- 1TB: 3.81 EUR (100USD cheaper than the DigitalOcean example you made)

- 5TB: 12.97 EUR

- 10TB: 24.75 EUR

- 20TB: 48.31 EUR

https://www.hetzner.com/storage/storage-box

I've been paying for two 5TBs boxes (+ rsync.net) for my backups for a very long time and had one issue one time when the connection to one of the boxes was degraded, but otherwise it's been painless.


Ok, it's 2/3 times cheaper but the reliability is clunky as it's hosted on a single device.

With S3 I don't really care about what happens, do a snapshot myself, spend time restoring from snapshots etc. It's there. Worth the upgrade to me.

Also, not from Europe, ping not good.

Edit: also read horror stories about Hetzner, in my former jobs had problems with OVH. No service, unreliable.


> Ok, it's 2/3 times cheaper but the reliability is clunky as it's hosted on a single device.

Is it? One of those boxes have been running continuously for 5+ years, according to my monitoring that checks the status every 30 seconds. You can snapshot at your own leisure and it's setup with RAID to resist drive failures.

Or do you actually have something that points to it having troubles with reliability?

Having problems with OVH I don't know what has to do with Hetzner, they are separate companies...


Google drive is 99/yr for 2Tb. You can use a folder synced to google drive as your serving folder and get double the storage.

Of course at that point you might as well just use Google photos


Would it be possible to host on DO Spaces? That's even cheaper than S3 I think. I'm in the same boat, too many images to host them on a Droplet.


I just mounted a readonly volume for photoprism to use thats all.

And you can backup that folder with whatever you like.

And you can get files to that folder however you want. Including mounting a volume from s3 API location via s3 fuse.


Do you know of any solution that uses S3/cloud storage and has E2EE? I'm looking for something similar myself.


How would you solve inference for things like face detection or object detection? I guess you could run it on the client while uploading but that would make updating models awkward (download every file, run inference, send requests to server to update index).


> Instead, PhotoPrism prefers a fast, local solid-state drive.

That is perfect for me. Let it organize the photos and let me do the backup the way I like it. Single responsibility principle etc.


Let's say I want to host it on Digital Ocean, Hetzner, or even a server that's sitting in my room. I want a family member to have an access to it too.

How do I keep it secured? How can I make sure nobody breaks in and access my photos?


I'd recommend using a VPN (or VPN-like service) to connect to the server - it might not be as simple as Google Photos et al to set up, but is likely the most secure option

Edit: from a similar comment, see https://photostructure.com/faq/remote-access/#accessing-your...


Something like Tailscale?

I thought about it, but aren't the current best practices moving away from VPN access towards more granular authentication and authorization? If I understand it correctly, once someone gets past VPN, it's over. So now I have to secure both VPN and my server (and the services).


I have installed Photoprism a few weeks ago in a jail on FreeBSD (TrueNAS, more precisely) and I have mixed feelings; it uses 70 GB of storage for 260 GB of photos, which sounds bad, and the face recognition is very unreliable so far, while the interface is unfinished - things like batch operations don't exist and I read some discussions on the product tracker and the development model is ... so and so. It is great that the product exists, but it is limited and unpolished, I will probably delete it soon and re-evaluate in a couple of years.


I'm running this self-hosted, using docker compose and traefik. Modern tools make self hosting SO much easier!


They do indeed. I moved all my home infra to docker about 5 years ago and couldn't be happier. It forces my ADD brain to keep things tidy on the home server and now I barely have to do anything unless the server runs out of disk space.

Side note: Just last weekend used autocompose.py to pull all of it into Docker compose files. The tool isn't perfect, but it works flawlessly for anything that isn't using weird mounts or host devices. For the problematic containers, I used inspect on the original, stopped it, spun up the compose version, and compared the inspect data. Take so much guesswork and googling out of Linux admin once you're versed in how it works


If I remember, it does not have any sharing capabilities, which to me it's the key feature of google photo



That's nice, wasn't there last time I tried!


This was my issue as well. Here's my primary use case for an app like this:

A group of friends go on vacation together. Everyone takes photos and videos with their own devices. When we get home, we upload all our photos to a central location (self-hosted and running on Free software), so everyone can browse all the photos, and download copies of those they'd like.

From the documentation it looks like I could share my photos with photoprism, but my friends wouldn't be able to contribute theirs.


I tried it out and was generally happy with the results. Unfortunately there is no way to share my entire catalog of decades of pictures without giving out full admin access and I'm not comfortable doing that. I can share bits of my collection in a satisfactory manner but that does not meet my needs.

I'll also add that some of the classification was amusing, but I suppose as time goes on it will get better.


I’ve heard that feature is WIP currently.

And yeah, the classification is funny. Apparently I classify as a wall now.


Look again! Recently, I was happily surprised to find a way to share albums with friends.

Just a simple guest link.


I saw the option to share albums, but I wanted to allow a guest to see the entire collection. Happily it sounds like that is coming.


I think the team is working on that feature.


Can anyone speak to how well the facial recognition and group works? I find that feature quite valuable in Google Photos


I've not yet used it, but I found this sadly interesting: https://docs.photoprism.app/user-guide/organize/people/#asia...


I’m a big fan of PiGallery2 myself [1]. Very simple and fast, meant for running on a Raspberry Pi (hence the name).

I remember photoprism having some subscription requirement for certain features.

Other notable alternatives:

- PiWiGo [2]

- Photoview [3]

- Zenphoto [4]

[1] http://bpatrik.github.io/pigallery2/

[2] https://piwigo.org/

[3] https://photoview.github.io/

[4] https://www.zenphoto.org/


I have ~1TB of photos and I liked the idea of hosting this on Digital Ocean, but it looks like a volume of that size would run me over $100/mo. I'll have to stick with iCloud Photos for now.


Storage volumes can be much cheaper. For instance, Backblaze B2 will run you around $6/TB/mo, IIRC. And some providers (usually the smaller ones) have discounts for bulk purchases (e.g. a year). Many self hosted apps support cloud storage.


Is it possible to use B2 or DO Spaces as storage for Photoprism?


Sort of. It's not natively supported, but you can use something like s3fs-fuse to mount a S3 compatible storage (like B2) locally and use that. I personally went a different route: Set up Nextcloud, point its primary storage to B2, and then mount a Nextcloud folder (using WebDAV) to my filesystem which I configured as primary storage for Photoprism. That setup was pretty slow, but I also had Nextcloud and Photoprism running on the same VPS which additionally was underpowered for even Photoprism alone. I am now using a separate server for Photoprism and performance is much better


I built a lower end linux machine out of consumer grade parts in order to self-host this. I think it ended up being $600-800 with 8TB of storage but could be done a lot cheaper. Hard to beat $10/mo though unless your needs extend beyond storage. I ended up using it for a lot more in the end (mealie, wordpress, etc). Something to consider if you the budget and time.


That sounds very expensive for 8TB of storage. I should think you could build a modest NAS for half that. Alternatively, buy two Western Digital My Books to get more space + redundancy.


I didn't want a NAS. I wanted a linux machine to experiment with docker and setup photoprism. I am self-hosting ~20 containers so far. It has 32GB RAM and pretty good CPU to experiment and run different workflows in the containers. I noted it could be done cheaper but that is not my goal. Can always add external storage.


I self host on an old i5 machine w/ 8 GB DDR3 and it works a treat. I back up (300GB) to Backblaze (and another machine on prem) for about $3/mo or so.


My Hetzner server that I rent for 40€/mo has two 4 TB drives.

I don't think they have cheaper servers at the moment, but Digital Ocean seems awfully expensive.


PikaPods has much better storage pricing for PhotoPrism.


i don't see any pricing for storage on their site

n/m signed up and you use sliders to get what you need.. looks like its about $15 a month for 1Tb of storage which isn't enough for me.. too bad.


I dropped them an email and they increased the cap to 6TB. I enabled 2TB on my pod and it estimates $20/month.


I'm currently using Adobe bridge to cull my old photos and add keywords to them for better searching.

One of the main things in trying to find is a good system of adding keywords and ratings that is tied to the file without any side cars. Is this even possible? Does Photoprism store it's labels in a sidecar or is it editing the exif of the photo?

It would be nice to be able to organize photos in a platform agnostic way.


The biggest two problems with Photoprism are:

1. No sync facility. I have to use some other app or do it manually.

2. No native mobile app. They have a webapp, but it is absolutely not good enough. Slow, laggy, unresponsive, just unusable if you have lots of photos. I know mobile app development is very costly these days, and photoprism is free. So I am putting up with it.


Big Photoprism fan but would love a better way to auto-sync photos from an iPhone. The recommended app is clunky imo


Using this for a few weeks and it's been fantastic. Looking forward to multi-user support. Once I clean out picures only my wife and I should see, I'll be able to share with everyone. =D

What's the best way to move pics from phone to this? I hope it's not drag/drop in finder to samba share...


Oh, probably webdav. Thanks @ungawatkt. =)


I'm looking for a package that can automatically detect events, using ML or otherwise, grouping photos by proximity in time (and gaps in time between events), location, and image contents themselves. It's not an easy problem and I haven't found an open source package that does it


Do we have any self hosting or other services that create movies with photos and music if provided? I have synology photos that solves backup and a decent portal to view and share, but cannot find some service for automatic movie generation based on events wrt time and place


Photoprism rocks. I wrote up my experience with it in 2021, and I'm still happily using it: https://tailrecursion.com/~alan/HomePhotos.html


I just got this set up - it parsed ~5000 photos (half raw, half jpg) surprisingly quickly on my laptop. As stated by others, I wish I could look at certain days more easily. The share function is very cool, though - an easy way to showcase your photos to others.


What photo display device would work with Photoprism?

I have been dumping photos into Google Photos for years and years, never to be seen again. But then I got a Google Nest photo frame sitting on my kitchen counter and it has dramatically changed things.


Great app. It just works and works well. I need to donate again.

Only two minor complaints are there’s no “On this day” function, and the instructions to view full resolution photos are a bit confusing. Otherwise i like it better than anything else.


Heads up, can't swipe the carousel left/right reliably. I'm using Edge/Android 13 on a Pixel 7 in portrait orientation.


Open source is one thing, but most importantly, is it self-hosted and how smooth is the integration with your phone's camera?


Finally something to do with my RPI.. I wonder how many months it will take to tag all my photos on that CPU over USB2..


I’m running it on my pi, it’s indexed 4000 of my 8000 pictures in the last 30 hours. So yeah, not exactly fast - but it’s a rpi 2 or so, not exactly known for its performance.


Wondering if there are plans to get shareable web link for albums and/or individual photos?


That is already possible as long as the machine you are hosting photoprism on is already open to the internet. You can create a shareable link to an album (dont know about individual pictures) which gives people read-only access to that specific album and nothing else


This is the main reason why I still use Google Photos. I have shared albums with my family, that automatically add photos using facial recognition. If I want to create an album for an event and share with people it's really easy.


Does it automatically sync my photos from my Android phone camera like Google photos does?


No,but you can set that up with third party applications and WebDAV.


I'm looking for something that can extract HDR photos from videos like Google Photos.


I've been using self-hosted Photoprism & Nextcloud to replace Google Photos/Drive/Docs for the past few months, so far so good. I do miss being able to search for something like "vaccine card" - the AI search is fairly primitive. I also worry about the security of it, so it's behind VPN which adds a slight inconvenience when accessing it from my phone. That being said, I like the idea of being in full control of my own data and I'm happy to support them financially, looking forward to future improvements of the app!


Language: Go

License: Affero GPL


What do you guys use to organize your local videos and photos? Photos is great on MacOS, I need a windows alternative.




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

Search: