As someone who self-hosts many different apps today, I only meant to host one. But once you start enjoying control over the system and data, you want to self-host everything.
In recent years, many products have adopted a free to self-host/paid enterprise plans model where it is free for users to self-host the product, but they have to host their server along with managing the security and backup of the data. For someone without essential sysadmin experience, self-hosting can be challenging. Companies or people who can afford to pay can get it hosted for them.
Bitwarden was the first app that I self-hosted to store my passwords safely. Then to further secure my Bitwarden server, I self-hosted an instance of OpenVPN VPN where my Bitwarden was only accessible if I was connected via my self-hosted VPN. But this also meant that I risked losing access to my Bitwarden if my OpenVPN setup failed for some reason. So to add redundancy, I self-hosted an instance of Wireguard VPN. I could now use either VPN protocol to access my Bitwarden server.
From there, it was a slippery slope. Since each server costs merely $3 per month, I started hosting more of them. As the number of self-hosted systems grew, I had to self-host Pritunl, an open-source enterprise VPN where you can manage users and access servers. My entire self-host stack is hosted behind a Pritunl. The Pritunl server is only accessible via my other self-hosted VPN, thus reducing the attack surface.