26
votes
Moving to PhotoPrism for photo self-hosting
Yesterday I recorded myself setting up PhotoPrism on an old laptop to document the journey. Everything went pretty smoothly which was great. In the past, I've used several different mainstream providers which ended up not working for me:
- Google Photos (been trying to move away from Google products for a while)
- One Drive (I'm not sure if this is widespread but my connection to One Drive servers are so slow. This is super evident right now as I'm trying to pull all my photos from it and it's taking forever)
- iCloud (This works pretty well but it doesn't feel great when I'm on my non-Apple devices)
I'm pretty excited to have local hardware running flexible software to host my things. I still need to figure out how I want to expose the computer so I have access to it away from home (I'm thinking of using Cloudflare Tunnel?).
Next up is finding software to stream videos to my TV so I can start getting rid of some streaming services.
I'm currently using PhotoPrism too, and I've encountered very few issues with it. I have it setup via docker (using docker-compose) and run it in read-only mode to minimize any risk to my photos. It is my primary means of sharing photos with family and friends now.
The only problem is that their monetization involves locking features behind paywalls, and only offering subscription "purchase" options. Due to this, I tried a number of alternatives like Immich, Photoview, LibrePhotos but encountered issues with each so I'll stick with PhotoPrism until those mature.
As for Cloudflare Tunnel, I can definitely recommend the service. That is actually what I am using to publicly expose a number of services like PhotoPrism, Jellyfin, and NextCloud (all behind a reverse proxy). The setup isn't too complicated, and the benefits are worth it in my opinion.
Great to hear Cloudflare Tunnel is working for you. I'm going to try it out this week.
Yeah, I did notice some features being gated. I wouldn't mind paying if I end up really liking PhotoPrism, but I would rather pay a one-time fee instead of a reoccurring fee since everything is hosted on my hardware.
Tried setting it up recently and was generally pretty happy with it.
Until I found out there's no way to batch/group edit things. It seems absolutely insane to me that if I want to select X number of pictures and tag them for a location or person or whatever that I then have to walk through that list and select the label and save for each individual picture. It seems to have been a 'pending' feature on their request page for a few years now.
Ditto on finding all the alternatives I tried lacking even more though.
That is a huge missing feature indeed, and honestly the fact that you can select them, and click Edit, makes it even more obnoxious. The first time you try you're thinking "Oh nice, I can select these few, click Edit, and.... wait... I have to make the change to each then click to the next?" and then the disappointment is even more tangible.
Some friends and I use Tailscale for our home networks and have zero complaints. It was painless to set up and I’ve had no issues
Great I will check it out!
Tailscale is fantastic. Can’t recommend it highly enough.
Use Wireguard VPN to access home network. One UDP hole in your firewall.
Is that any better than using Cloudflare Tunnel? According to this video, it doesn't require any holes in your firewall (and it's free).
Short answer is that they’re different: Cloudflare tunnel exposes your service to the internet, as in, the entire public internet*. Depending on your use case this might be desirable - you might genuinely want to enable public sharing, or even personal access from public devices - and it’s a great way of doing so while still keeping the network locked down, but it means that any unpatched flaw found in PhotoPrism, security misconfiguration, leaked password, is publicly exploitable.
Wireguard (including nice friendly mesh versions like Tailscale) is a direct point to point tunnel. You access your services across the internet, but only you can see them from specifically verified devices. This is much, much more secure but it’s only usable if you want to share the service with a small trusted group of devices that you can manually install and authorise a VPN client on.
*At least in the default config. You can use their zero trust security to do some pretty cool things with network-level security using standard public auth headers over HTTP, but that’s also straying into more complex territory and I’m fairly sure is only available on paid plans.
Gotcha, thanks for the great explanation!
Nginx reverse proxy and you're all set for showing services to the interwebs. I limit port 443 by geo region and I'm probably heavier than most for the old ban hammer using trusty old fail2ban.
It all depends on use case. If you want ease of use, being able to look up DNS and hit your services is friendlier than needing to VPN/tunnel p2p. If you want to go really limit the target, VPN is going to be far more secure, no matter what product you use.
As for Photoprism, I heard the same thing about the paywalls and they have a model of pay for access to goodies. That's fair, it's their product but if you want free then NextCloud offers pretty basic but good photo sync and storage. There aren't any bells and whistles at this time but it just works. Memories is a Nextcloud add-on to give you some more fun stuff but I've found it to be a bit flaky.
Hi @g33kphr33k, besides the flakiness of Memories, are there any performance hits/drags to the underlying server for self-hosting this add-on? I ask because for years i have self-hosted nextcloud (originally on VPS providers like digital ocean, but lately from home network)...and i almost never install add-ons, almost always depending on core basic functions/modules. But here, I'm curious about this one. So, does any of the functionality of Memories seem to impact the underlying server that you have observed? (My home server is not so underpowered, but i want to keep as much of its available power for other stuff i'm hosting on it like jellyfin, etc.) Thanks!
Not that I've noticed. It did take awhile at the beginning but it was indexing around 200k of pics and video. Since then, nope, not difference at all.
That's quite encouraging; great to hear! And, yeah, i always assume the initial indexing of any media content often hits the processor a bit temporarily; but that's a known thing regardless of server or regardless of platform, etc. Thanks again for sharing!
I've been using Immich routed through Cloudflare Tunnels as an alternative/backup to Google Photos. It's been fun watching its rapid development.
During my initial testing, I used Tailscale to remotely access the server but started having issues with Tailscale and Android's Private DNS functionality, so I decided to swap to Cloudflare Tunnels, which I use for various other apps.
I've heard many things on Photoprism and immich...but for now, I'm making due with the native features of nextcloud - which are not the most advanced, but they're fine for me. However, for my family who do use onedrive, i would need to consider using something more - eh - fancy and schnazzy. ;-)
That being said, i do use tailscale for accessing my machines, and its been working great - like phenomenally great!! I hjave heard of cloudflare tunnel, but don't know anyone personally who uses it, so have no direct feedback. But, i do use other cloudflare products, and they seem top-notch. So, that's always a good sign. I think i will stick to tailscale if only to diversify my providers.
As far as streaming, i have a pilot/experiement going with my family to play with jellyfin for music and tv/movies...so far, pretty damn good. The only flaws i see are related to metadata for music...but i think that might be on my side - either i tagged music badly long ago and its manifesting my mistajkes and/or i mis-configured which online sources to use to auto-pull down metadata...Either way, assuming your media's metatdata is better than mine, i can't complain about jellyfin!
Thanks for the recommendation! I will most likely install Jellyfin next :)
Tailscale is great. I do have issues with it when trying to use an exit node. Sometimes the Internet or maybe it's dns doesn't work and I have to turn it on and off several times before it starts working
As far as other media goes, you're probably looking for Jellyfish/Plex. And maybe the collection of Servarr applications and Ombi depending on whether you're ripping your DVDs yourself or not.
what do you have in mind for streaming videos to your tv? Or what kind of content are you trying to watch on your TV that doesn't involve any streaming services?
It would be having my own files for TV shows and streaming them to my TV
This is my eventual goal...and i hope to rip all my DVDs and buy several more to host and stream on my own. ;-)
Do you have a plan for offsite backups? Really the main thing I'd miss if my Synology went down would be the family photos. I have all my documents and manuscripts backed up to dropbox, but text files are teensy. Movies, music, and games I can redownload painstakingly. It'd be a pain but doable. But family pictures are irreplaceable, difficult to keep track of, and extremely storage intensive. (I actually stopped shooting in RAW because of the storage issues.) I've been trying to think up a better way to back them all up that's better than the ersatz and poorly organized iCloud system I have.
I might have to settle for paying BackBlaze or something like it to backup the Synology, but $5 a month is not insignificant for me when I'm already paying iCloud storage.
I definitely plan to, but I don’t know the solution yet. I’ve used SpiderOak in the past for my own personal stuff on the computer, but that was a long time ago and I’m sure things have changed since then.