I don't trust any service with plaintext of my photos so I self host everything. I also have a relatively huge amount of data so most cloud storage is out even if I wanted it.

My setup is a Linux-based NAS with LUKS on everything and each HDD in ZFS with RAIDZ2. I store my photos in their own ZFS filesystem on the zpool and use a tool that automatically creates snapshots and keeps varying resolutions for various timeframes (e.g. 24 hours of hourly snapshots, a week of daily snapshots, a month of weekly snapshots and I think 6 months of monthly snapshots).

As far as organizing them goes, I put my photos in date-based folders (e.g. 2018-12-09) and for larger ones go through and give them more useful names like "2018-12-09 - Brother's birthday".

I tend to edit them with Darktable the most these days, which also stores XMP sidecars alongside the photos.

I haven't yet set up a backup, which I know is horrible. When I do I'll likely go with either Wasabi or a NUC or something in a nearby datacenter.

For remote access I have Owncloud, though I _really_ want something nicer. Unfortunately there isn't much that works well with RAW files.

How did you set up the snapshotting?

I'm using this, but packaged for Arch Linux: https://github.com/zfsonlinux/zfs-auto-snapshot