Photo storage
How does one share photos with loved ones without relying on Big Tech (i.e. sharing them on Facebook)? I have not yet cracked this nut, which is why I use Signal for the time being. Seeing as not everyone uses Signal, it’d be great if there was another option. Well, there are, and they require a machine to host stuff on, and since photo collections take up a lot of space, self-hosting does seem the best option, if it already wasn’t because of privacy.
A post on Hackernews presents a few leads, and I’ll characterize them to see how they stack up. Simplest seems to generate a static website from a somewhat organized directory of photos. This however still would require manual big-step maintenance, which I must confess is something I struggle with already; I have quite a backlog of photos to sort and tag. So, maybe I use a more complex tool, which then puts extra requirements on the hardware where I’m going to host all this. This is probably going to be one of the spare laptops I have lying about. I looked into hosting it on one of the spare phones I have lying about, and although Termux can easily allow it, I would need to use external storage (I have bad experiences with SD cards, as do we all I guess).
Long story short: here’s a terribly short list of options and considerations:
- Static site generation
- Digikam
- I use Digikam already, so let’s look at it’s exports
- html: doesn’t do video.
- jalbum: requires a jalbum install, which requires javafx. This is not in the Debian repos, so it’s too much work.
- I use Digikam already, so let’s look at it’s exports
- photo-autorganize
- Auto-organize photos
- Could use any old static site generator myself next.
- Home Gallery
- No apps, no users, no sharing
- Has ‘static export’
- Browser: maps! Tags! No browsing by album, only years.
- Face recognition, browse by face
- Deploy to other host: Encryption
- The attraction of a static website is that it could be deployed on hosts like Github, Cloudflare Pages, Netlify. However, since this is private, some sort of encryption would be nice.
- https://github.com/MaxLaumeister/PageCrypt
- https://github.com/robinmoisson/staticrypt
- requires nodejs
- Self-hosting: Security
- Also self-hosting implies security consideration.
- Onionshare works great on the desktop. On Android it can only share single files however.
- Digikam
- Self-host
- Security
- Tor
- Requires others to install Tor Browser, but, is then pretty safe.
- For completeness: Android
- Limiting Tor hops (default: 3) helps with speed.
- Tailscale, Zerotier, Yggdrasil
- All cool and great options for other services that I’d want to access on the go or with other devices in the household. Not great for sharing with friends and family, they’d need extra software+configuring and might get access to more than I bargained for.
- cloudflare tunnel
- Looks somewhat like the above, but since it’s hosted, does not require client software. Good candidate therefore.
- Tor
- Security
- Actual photo management software (as opposed to static site generators)
- More options
- Apps to upload straight from phones, the largest source of photos that need sharing in this household.
- Small-step maintenance options: I can correct a tag, a date, location when I see it (I would expect!)
- Pitfalls
- Require more server resources
- Require more safety measures: many of these tools have PHP components. I’m a bit scared exposing such a service on my local connection to the world.
- Silos: Photos and all metadata should be stored in a compatible fashion and/or be extractable from the software in a straightforward manner.
- Can individual albums be shared, or is it all or nothing?
- Lychee
- No mobile apps.
- Can make albums private or public.
- Demo looks and feels good, snappy.
- Not sure how it handles deeper hierarchies.
- PHP
- PhotoStructure
- Freemium, certain auto-categorization functions are paid.
- Desktop and server software.
- No mobile apps.
- Appears to have no sharing yet.
- Not FLOSS
- Photoprism
- Excellent photo browser, supporting deep hierarchies and tag-based browsing.
- No mobile apps, but can upload through WebDAV. (I suppose one can do this outside any app, as long as it can monitor an ‘incoming’ directory.)
- Supports sharing albums, marking photos as private.
- Map browser
- Go
- Immich
- Come with not-ready-for-production-may-eat-your-data warning
- Mobile apps
- User management, sharing
- Browser: OK, no maps, no tags (yet)
- Nodejs
- Photoview
- Browser: OK, has maps, timeline is based on ‘up-to-$date’ filtering.
- Users and sharing
- Has app, but only iOS and only viewing.
- Go and NodeJS
- Piwigo
- Mature, significantly more features than all of the above.
- Separate management and display UI. Pity, because management UI is great for viewing!
- LibrePhotos
- Browser: timeline, maps. Bit hard to judge based on the demo, as it does not include a single photo!
- Multi-user.
- No apps.
- Python.
- PiGallery
- No apps.
- User management.
- Browse by directory, map, but not timeline.
- NodeJS
- More options
No clear winner. Home Gallery, PiGallery, Photoprism, Lychee, Photoview and LibrePhotos look good, but that’s not much of a shortlist. Nothing jumps out right now, and if I want to make it easy to share photos from a phone, auto-import outside of the app would need to be tested anyway.