top | item 39783223

Show HN: Memories – FOSS Google Photos alternative built for high performance

797 points| radialapps | 1 year ago |memories.gallery

Memories is a FOSS Google Photos alternative that you can self-host (it runs as a Nextcloud plugin).

Website: https://memories.gallery/

GitHub: https://github.com/pulsejet/memories

Demo Server: https://demo.memories.gallery/apps/memories/ (demo runs in San Francisco on a free-tier cloud vm)

Memories has been built ground-up for high performance and is extremely fast when configured correctly. In our testing environment, it can load a timeline view with 100k photos in under 500ms, including query and rendering time!

Some features to highlight:

* A timeline similar to Google Photos where you can skip to any time in history instantly.

* AI-based tagging that runs locally on your server, identifying and tagging people and objects.

* Albums and external sharing.

* Metadata editing support

* A world map of your photos, supported both on mobile and the web

* Did I mention it's extremely fast?

Would love to hear feedback from the HN community! :)

230 comments

order
[+] codethief|1 year ago|reply
Fantastic project!

> No Lock-In

> Memories stores most of the metadata in the EXIF headers of your photos, which means that you can easily migrate to other solutions without losing your data. It also utilizes your existing filesystem structure for organization without converting it to any specialized format

Given that, would a standalone version be feasible, i.e. one that doesn't rely on Nextcloud and only operates on a folder on disk? I mean, while Memories might not lock you in, Nextcloud can still do so. (No two-way sync etc. etc.)

Currently, I just use Syncthing to synchronize all my files across devices (laptop, phone, home server, …) and it works splendidly! Ideally I'd just want to run Memories either locally (on the local copy of my photos folder) or on my home server (on the home server's copy of my photos folder).

[+] radialapps|1 year ago|reply
Thank you!

I wrote a bit on why Nextcloud a while back, I'll link it here (see point 5 in FAQ): https://memories.gallery/faq/#faq

As such, Nextcloud doesn't really lock you in; it just provides a framework for the app. You can, theoretically, continue to use Syncthing to sync files while running Nextcloud on top of it (probably not ideal though)

I want to note though, the "no lock-in" philosophy refers more to being able to move out of Nextcloud/Memories at any point if you want. Nextcloud still just stores everything on your disk as folders and files, so you can just decide to nuke it one day and still have everything (not fully true yet, you'll still lose some things like tags and albums; exporting these out too is WIP)

[+] raybb|1 year ago|reply
Probably not what you want but I use rclone to mount my hetzner NC instance and have syncthing that points to that mounted folder. It's been pretty hands free solution for me since I don't have a computer at home that's always on. It all started because I didn't want to keep getting sync conflicts with my obsidian notes between laptop and phone.
[+] adrr|1 year ago|reply
Biggest missing feature for all these self hosted photo hosting is the lack of a real search. Being able to search for things like "beach at night" is a time saver instead of browsing through hundreds or thousands of photos. There are trained neural networks out there like https://github.com/openai/CLIP which are quite good.
[+] kn100|1 year ago|reply
Immich does exactly this with CLIP models, you can even customise which CLIP model it uses and it does a phenomenally good job, I'd personally say surpassing even Google Photos.
[+] dugite-code|1 year ago|reply
Nextcloud has some neural network integrations so implementing something like that might be possible. The Memories app can already use the Recognize app for the smart tags for Photos.

Combining it with "The Search Page" app makes it a quite comfortable experience as is.

[+] schainks|1 year ago|reply
Google Photos can already do this pretty well. I use the feature daily without friction. Sometimes, but not always, it can even pull text from receipts I photograph, which is handy for expense reporting.
[+] leononame|1 year ago|reply
Hi, this looks super polished, congratulations. I've got a couple of questions:

- Does the metadata editing allow it to write back to the file, storing the edited metadata in a sidecar or in the EXIF data? - Does it support some kind of auto-stacking? E.g. having raw files alongside exported tiff/jpg and recognizing that they are the same file? Especially for a nextcloud based solution, that'd be awesome

[+] bl4kers|1 year ago|reply
Basically the last thing keeping me locked into Google Photos is it's social features.

I see "external sharing" is mentioned but haven't found more information on that. Ideally I'd want the option to share an album with password protection, doesn't require an account to view, and allows comments on photos. Bonus would be to have a running album feed with view receipts per account.

I know that's a lot but wanted to be specific. I'm ready to migrate but haven't found a platform that has feature parity on this front.

[+] collin128|1 year ago|reply
This for me too.

The reason I pay for tons of extra Google photos storage is it tags and uploads and pics of my kiddos to an album shared with all the grandparents. It's their favourite app in the world and I'm never allowed to cancel.

Could I replicate that here?

[+] radialapps|1 year ago|reply
You can share folders and albums that don't need an account to view. Folders do support password protection as well.
[+] magic_hamster|1 year ago|reply
It sounds like you can implement this by hosting your photos on a server with password access. You don't even need google for this.
[+] hoherd|1 year ago|reply
Photoprism has gallery sharing and the share links can have expirations.
[+] anigbrowl|1 year ago|reply
This looks promising, plus it won't try to push its idea of my favorite photos at me when my phone detects I'm awake each day - a gPhotos behavior I find increasingly creepy and never asked for.
[+] mcfedr|1 year ago|reply
Disable notifications and it's gone
[+] stavros|1 year ago|reply
This is fantastic, better photo viewing is the only thing I was missing from Nextcloud, since without this I basically can't see any photos (they're too slow and the UX is bad).

I installed this, indexed the photos, etc, but I still get lots of grey boxes (photos not loading) when I browse. Am I missing something, or is my server just too slow for this?

EDIT: I think my server is just too slow. The entire machine freezes when loading one of the photos.

[+] conqrr|1 year ago|reply
I will take whatever is the most stable. I don't need a lot of feature, just a timeline and gallery with albums. Immich fits it for now, but it is way too focused on piling features and is bleeding edge. I hope memories has stability as its goal.
[+] dugite-code|1 year ago|reply
I've been using it for quite a while and had no issues with the app at all. Only one hick-up with Nextcloud itself but that was really my fault if I'm honest
[+] radialapps|1 year ago|reply
Indeed. Backward compatibility is also a major goal and there have been almost no major breaking changes since v2 (at v7 currently)
[+] pathsjs|1 year ago|reply
How complex is it to configure? I have an instance of NextCloud from Hetzner, but I would rather not misconfigure it.

Also, is there a mobile app? Most of the time when I look at pictures I am on the phone

[+] talhah|1 year ago|reply
As easy as downloading an app from the store and telling it which directory to work with.

If you need the AI features those require separate apps and depending on your deployment it might need some effort. I'm running a docker image and had to ensure I have some of the required libraries for the AI things to work. It isn't too hard to misconfigure though and I believe there's a decent amount of resources for this.

As for mobile app, there isn't an explicit one but the webapp interface is mobile friendly and works pretty well. I also use NC photos and it still works with the tags and face recognition things. That app doesn't require "Memories" as far as I know.

[+] belinder|1 year ago|reply
How does this compare to immich? I spent a few weekends ago setting that up and it's working great, though it doesn't always detect faces correctly and swiping through images is a bit slower than Google photos
[+] talhah|1 year ago|reply
The main thing to me was that since this runs on Nextcloud its more extensible as the photos are just stored under the files and you can use various other apps to do what your heart desires. The other aspect is you get your own Gdrive alternative. You may or may not want this.

For mobile compatibility Nextcloud is better since you can choose which folder photos go to and you can essentially automatically backup albums whereas with Immich you can't automatically specify which album photos from a directory should go [1].

In addition to this, Immich isn't too stable yet and each time you update the server all clients have to be on the latest version, at least since the last time I used Immich.

1. https://github.com/immich-app/immich/discussions/1678

[+] radialapps|1 year ago|reply
Face recognition is a hard task but you can manually correct the AI and it learns from that. Performance is the #1 goal here. I actually profiled this side-by-side and it's actually faster than Google Photos for my personal deployment.
[+] hunter2_|1 year ago|reply
I need to dig deeper, but for now I just want to say how delightful it is to be able to go to the next/previous photo by swiping even if I've zoomed in. Google Photos makes me zoom all the way back out first with a huge pinch, which leads to a lot of frustration when swipes fail to change the photo. Nice work.
[+] beAbU|1 year ago|reply
"It's not a bug, it's a feature".

Many rely on this "issue" to prevent people from swiping to photos they're not supposed to see - a common enough occurence when showing someone a photo on your phone.

[+] spencerflem|1 year ago|reply
I was just setting this up last weekend! Its lovely, really well put together. If this is your project, thank you so much
[+] radialapps|1 year ago|reply
Great to hear that!

It's FOSS and I only work on this in my free time, so please keep the bug reports coming as you run into them! :)

[+] ementally|1 year ago|reply
How is it compared to https://ente.io/ ?
[+] radialapps|1 year ago|reply
Different goals.

Ente is commercial, Memories is free

Ente is focused on E2EE, Memories is focused on self-hosting.

[+] hanniabu|1 year ago|reply
looks like memories has auto-categorization
[+] usrusr|1 year ago|reply
Would it be good for federation? As in ability to dump a large amount of mixed quality images on a local instance and then sync only a subset ("tagged favorite", "rated 4+ stars" or something like that) to an off-site instance. Because that's my number one requirement for image management: convenient management of the image selection subset pyramid.

I know nextcloud has some federation features, but I have no idea if that could be put to work based on some exif criteria or other file metadata.

For all I know this could be a killer feature that would be enough on its own to motivate the nextcloud plugin vs standalone decision, or it might be completely useless as in federation only based on entire folders.

[+] tuananh|1 year ago|reply
I've been using Synology Photos. Not OSS but they have Android/iOS app so that I can just log in once and enable auto-backup.
[+] thih9|1 year ago|reply
Congrats on building this, looks great!

Minor feedback: could you update the text or image to link to nextcloud? I know nothing about nextcloud, the project mentions it and I wanted to read more.

[+] muppetman|1 year ago|reply
These are all similar things that Gallery (https://en.wikipedia.org/wiki/Gallery_Project) promised (not the same features because location for example wasn't a thing). And delivered on for a great number of years, really well. It seemed like the future of image hosting. And then it slowly trailed off, v3 of Gallery did get released but to a lukewarm reception (the old plugins/addons didn't work and the cloud was just starting to take over) and then yea, it just died.

I have my gallery still online these days, with a fork so that PHP8 still works with it, but I've had to hide it behind an IP Access list now because I don't trust it being public facing anymore.

I don't mean to shit on this project, I hope it's massively successful. We need more awesome open source apps like this. But I've been burnt once already pouring my heart and soul into an open source image gallery so I'm not going to do it again.

In hindsight I wish I'd put all my photos in Flickr (I thought I was being so clever using Gallery) because it's stood the test of time that Gallery didn't. These days I use Google Photos, I can't see it going away anytime soon (though of course it's Google so who knows)

Sorry this rant is probably very offtopic. The product itself looks amazing and I DO hope it achieves the success that Gallery couldn't.

[+] ggm|1 year ago|reply
Does it have perceptual hash duplicate detection?
[+] WhitneyLand|1 year ago|reply
Great work Varun.

Doing photos is one thing, but doing it to scale and also with high performance at the client is a very nice accomplishment.

[+] pathsjs|1 year ago|reply
How complex is it to configure memories? I own a hosted instance of NextCloud from Hetzner, but I would rather not misconfigure it. Also, is there a mobile app? I think not having one is limiting, since most of the time I want to look at the pictures on the phone