My #homelab is just a server in my home connected via ethernet to my modem/router. I rent an entry-level VPS from Digital Ocean that just runs Caddy (https://caddyserver.org) for when I want to give my homelab services a public internet presence. I use tinc vpn (https://tinc-vpn.org) to connect the public Caddy server to my homelab server, but you might prefer Wireguard (https://wireguard.com). This is all incredibly simple and it allows me to self-host just about anything as a docker, a VM, or a native service. Caddy is hands-down the easiest web server to run. Wireguard is similarly easy as a VPN. If you're just starting a homelab, start with those pieces.