Hey guys, it's me, Bizzle. I'm a tech hobbyist, but I think I'm a little out of my element here and I'm hoping you can help.
I have a ProxMox server at home, part of it is running Lemmy. I want to make the rest of it run NextCloud. I have a domain name, but I only have one IP address. Therefore, lemmy.moorefam.net points to my house and I forward the port from the VM running Lemmy.
What I want is for nextcloud.moorefam.net to point to a different VM, on my home network. But I don't know how to set that up.
You will need a reverse Proxy that can handle name-based virtual hosts, one for each domain (each with its own certificate). nginx would be one candidate for that.
+1 for nginx, although there has been some concern because nginx is developed by a group of russians though it is open source and appears to still be widely used. If this worries you, look into traefik.
Otherwise does your ProxMox setup run docker containers? If so you can use NginxProxyManager which has a web gui for configuring your virtual hosts.
At a high level what you need is this:
all domains routed to your host (or home if self hosting) IP.
that IP needs to have a reverse proxy server like traefik or nginx listening on port 80 and port 443 if you want ssl/tls.
your app servers which run lemmy, nextcloud, etc can be anywhere on your network where your reverse proxy can access. You'll need to create vhosts for each. The server uses the Host header to determine which IP to reverse proxy to, eithe lemmy.moorefam.net or nextcloud.moorefam.net
the reverse proxy will get the content from lemmy or nextcloud and serve it via that IP and port.
ensure your home router is port forwarded on 80 (and 443 if you want ssl/tls) if you want to access these instances from the public internet but beware, you might want to add a firewall in-between if you aren't confident in your router's firewall.