Update: https://github.com/ente-io/ente is looking like a really promising option. Fully open source, end to end encrypted. Skip the VPS step and just pay for the storage you need, with lots of tiers to choose from. Pretty much ticks all the boxes above