What got you into selfhosting and what was the first thing that you hosted?
For me, it was PhotoPrism. I used to be an idiot, and used Google Photos as my gallery. I knew that it was terrible for privacy but was too lazy to do anything about it. When Google limited storage for free accounts, I started looking for alternatives. Tried out a lot of stuff, but ended up settling on PhotoPrism.
It does most things that I need, except for multiple user support (it's there in the sponsored version now). It made me learn a bit about Docker. Eventually, I learned how to access it from outside of my home network over Cloudflare tunnel. I'm happy that I can send pics/albums to folks without sharing it to any third party. It's as easy as sending a link.
Now I have around a dozen containers on a local mini pc, and a couple on a VPS. I still route most things through Cloudflare tunnels (lower latency), only the high bandwidth stuff like Jellyfin are routed through a wireguard tunnel through the VPS.
Anyway, how did you get into selfhosting? (The question is mostly meant for non-professionals. But if you're a professional with something interesting to share, you're welcome as well.)
Off topic but could you explain a little on how you use a VPS to access your internal services? There’s a few services I want to open up but I don’t trust cloudflare and I don’t want to port forward.
Basically what the other guy said. I have a wireguard tunnel set up between my home server and the VPS, with persistent keepalive. The public domain name points to the VPS, then I have it set up (simply using iptables) so that any traffic there in port 80 and 443 is sent back to my honeserver and there it's handled by nginx reverse proxy, and sent to jellyfin.
So, the only ports I need to open are 80 and 443 on my VPS to make this setup work.
Not the OP, but my current solution involves a small instance in AWS with a wireguard server in docker. This is configured with a few peers. One peer is a container on my home server that can access my jellyfin deployment. This container is also running socat to redirect the traffic to jellyfin. Then my phone and laptop are the other peers and I have a DNS record pointed to the IP of the wireguard peer on the server, if that makes sense.
I've been using this image pretty painlessly. The only hiccup I had with setup was ensuring persistent keep alive was configured on the peer forwarding traffic to jellyfin.