Hi all!
I’d like to share some slow, but steady progress I’ve made on my self-hosted personal photo gallery - a Google Photos alternative. It’s been a while since I last posted any updates - the last time was about v0.9.2 on /r/selfhosted, so it’s actually my first post here.
What’s new?
Lots of things! Here’s a quick summary:
- New website! photofield.dev - bonus, it’s embedded in every install, in fact, even the website is just hosted from the app itself. 😎
- UX polish - lots of small improvements, like better interaction & fixed video controls and better error messages & autoreloading config.
- Zoomier than ever - since v0.15.0 when you zoom into a photo, it zooms the whole scene! This wasn’t the case for a few versions due to a technical detour, but I found a way to get it back without too many compromises.
- Related image search - you can Find Similar Images now, using the same AI functionality as the semantic image search.
- Map view - you can see your photos on a map. Still has some quirks, so make sure to zoom in first. To be improved.
- Reverse geolocation - you can see the location of a photo in the timeline view. Completely local, using tinygpkg.
- Tags (alpha) - you can tag your photos now. Quite basic for now, but should be a good foundation for things to come.
- ARM Docker images - since v0.14.1 the published Docker images are multiarch - x64 and arm64, including photofield-ai. Makes it possible to run on cheaper, ARM-based servers, and faster on M1/M2/M3 Macs.
Show me the demo
Now hosted on Hetzner’s arm64-based CAX11 - 2 vCPUs & 4 GB of RAM - the cheapest one.
The photos are © by their authors. Since migrating to the CAX11, it only uses one size of internally pregenerated sqlite-based thumbnails, taking up roughly 4% of the disk space of originals. Support for Synology Moments thumbnails is still there, but doesn’t seem as crucial as before.
How do I try it out?
It’s very low commitment, a single executable or Docker image that you can mount with read-only access to an existing file structure, see Quick Start (also on GitHub if the website is dead).
Another one??? Why?
It’s a conspiracy to increase fragmentation and increase shareholder value of big tech companies. 😄 Jokes aside, I think there is some space for a fast, self-contained, extremely easy to deploy solution. But mainly, it’s to scratch my developer itch and I get to learn new things.
Thanks
Thanks to everyone who’s been using it, contributing, and giving feedback! See also foss_photo_libraries for alternatives if this doesn’t fit your needs.
Let me know what you think and what you’d like to see next! 🙏
Looks great, I got to admit I am a bit commited to Immich now but one cannot have too many good alternatives to fall back on if things don’t work as needed.
It’s quite impressive how much the Immich folks have achieved in a relatively short period of time! I’m glad you found something that works for you :)
Out of curiosity, what are the primary differences from Immich? I’ll be starting down this path soon.
I’d say Immich has quite a few more features, with the primary focus of backing up your media from your mobile devices with a more “managed” approach (it takes care of storing and organizing the files).
Photofield is more minimalistic (both in terms of user interface and as an application) and more useful if you have an existing directory structure that you want to view as a gallery. It also pulls a few neat tricks to make it work smoothly with up to ~600k files.
See also the linked comparison for more details. It’s mostly accurate, though video is a bit better with this release.
Thanks for the link to the comparison. Setting up a self-hosted photo solution is on my todo list and that comparison looks like a great starting point to explore from.
Interesting, i might give it a try when i finish setting up my new servers, havent been satisfied with other picture solutions, usually feels like they’re doing too much haha. I just want simple and fast, so this might be it.
deleted by creator
Is this for families to share photos privately?
Depends on what you mean by sharing, but if you put all your photos on a local NAS and run this on it for example, then everyone with access to it would be able to see them through a browser.
There’s no explicit sharing feature though.
No I meant putting it on a vps and giving family members login access so they can all save their photos and share within the network
Ah, I see! This is more of a solution for viewing existing photos, it’s not a fully fledged multi-user photo management solution.
If you had family members access and share photos via a file share though, you could use this to set up a common gallery that everyone could access via the browser.
It’s mostly meant to run on a local NAS though.
Saving this for when I get my NAS (eventually)
This looks very cool and promising.
Iove that you can deploy on bare metal, immich doesn’t allow that.
Does it support base-url? I mean can I host it on xxx.mydomain.com/gallery for example?
Thanks!
You can run it on a subdomain, e.g. photos.mydomain.com with no special configuration, but it doesn’t support subpaths, e.g. mydomain.com/gallery/
Please add support for it, it would be greatly useful
Added as a feature request https://github.com/SmilyOrg/photofield/issues/103
Sorry if these are stupid questions.
Does this only show these foss_photo_libraries and your local photos?
Does it support jpegXL?
I’d love a seamless zoom feature for images in the browser. I use imagus but I’d love if the popup window could zoom to be bigger than the browser window.
Sorry if these are stupid questions.
Not at all! Thanks for taking an interest.
Does this only show these foss_photo_libraries and your local photos?
I’m not sure what you mean. foss_photo_libraries is a comparison table of different apps someone else maintains, but I thought it was a useful resource. The photos in the demo are a subset of the open images dataset and a couple of other samples that I picked for demo purposes.
If you install it locally you can point it to a folder and it should use each subfolder as an album, or you can configure custom albums.
Does it support jpegXL?
Yes actually, but I don’t have many files to test it, so I’m not sure how well it works. If you do I’d be interested to hear how it works for you. It uses FFmpeg to on-the-fly convert anything it can’t read natively.
I’d love a seamless zoom feature for images in the browser. I use imagus but I’d love if the popup window could zoom to be bigger than the browser window.
You can zoom by using the mouse wheel or by pinching to zoom if that’s what you mean? You should be able to zoom pretty much as much as you want. If you’re in the main view where the mouse wheel scrolls photos up and down you can hold Ctrl (Cmd?) to zoom instead.
Cheers, didn’t know that something like a usable “open images dataset” existed. Awesome.
The last bit isn’t really relevant for your app, just a general rant really. It’s just that I’d like better image viewing support all around. Like in browsers there is an image and you can click on it but then a new tab opens. I have imagus but it’s not ideal and restricts the image to the smaller browser window. In the explorer I have quicklook now that opens images with space but the zoom feature is half assed too. Then many images apps have long startup times (>0.2 secs) or are bloaty. It’s just a bit annoying that it’s 2024 and PCs still can’t handle images really well.
Haha, I hear you! Some things are a lot harder than they have any right to be.
Do you have any plans for user Auth and uploading via the web app?
No concrete plans for auth yet, but there’s an feature request for this. I didn’t really want to give a sense of false security with a half-baked solution.
For uploading, I thought about it briefly and it could be interesting. How would you expect it to work?
I imagine you would configure a sort of a target folder structure, then it would dump all uploads based in that structure? Or fully managed like GPhotos/Immich where the app hashes, dedupes and owns the files directly? 🤔
I haven’t tried it yet, just moved and waiting for the internet to be installed.
I suppose any type of upload would work really, depends how “lightweight” you wanted to stay.
It’s just a convenience feature
Wow wow! Just trying the demo out feels super snappy and good, also crazy how fast the images load compared to other solutions i’ve tried! Will defo give this a shot when available on Unraid (Unless i do it myself).
Here’s a 🌻 as my appreciation for your work!
Thanks!
Unfortunately I have no idea about the Unraid ecosystem, so I’m not sure what’s the best way to approach that. It seems like you can run Docker images, so that’s probably one way to go? Let me know if you get it to work!
There’s nothing special you need to do to support Unraid beyond providing an image.
OP is likely talking about getting it added to the Community Applications app store, but tbh if you don’t use Unraid yourself it’s probably better if someone else who does maintains the template.
This looks like a way better interface over Synology photos which is fine, but missing the search and map feature. You need to see if they are hiring 😂
Ha, hiring only account managers 😅 It does have search and maps, but they are a bit rudimentary right now. Also I have to find some sample geolocated photos to put in the demo, it doesn’t have any right now.
The demo instance doesn’t show any images when using android+Firefox. Android+chrome is working.
Hmm, it seems to work for me. Which Android/Firefox version do you have?
Android 13.
Miui 14.0.11.
FF 122.1.0.After forcing a Firefox restart it works. Weird hiccup
Ah cool! Maybe the server broke? 🤷♂️