Cloudflare free tier + a reverse proxy will set you straight. You can add subdomains for your services as A records in Cloudflare off of your root domain, i.e. lemmy.yourdomain.tld, personalsite.yourdomain.tld, images.yourdomain.tld.
When doing this, enable the Cloudflare DNS proxy which will route DNS requests to your origin service through Cloudflares's CDN. This essentially "hides" your public IP as anyone doing a nslookup lemmy.yourdomain.tld
will get Cloudflares's IPs back as a response.
Once you've done this, you can break everything back out to it's respective backend via a reverse proxy. For example, lemmy.yourdomain.tld gets passed to 192.168.0.10, personalsite.yourdomain.tld gets passed to 192.168.0.20, etc.