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.
Thanks in advance, Bizzle
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.
Sweet sounds like I’ve got some reading to do, thanks!
+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.
Tl;dr: you can add millions of sites to a single IP if you want. Very common in commercial hosting as well.
I would advise against running millions of domains on a single IP, you will run into issues with a lack of ports that are not in use for the reverse proxy/backend connections unless you are dealing with websites that are basically never used.
I mean… if you’re running millions of sites on one box, and that itself isn’t an issue, I’d assume your port saturation/traffic is pretty low.
Sure… this was just said to simplify what is technically possible. Should you? No maybe not, for multiple reasons. Can you, technically? Yes absolutely. I don’t know what’s the limit but I know that if you have to ask here on lemmy, you might not be anywhere near that limit. Unless you are the go daddy.
You will need to run a reverse proxy on one of your VMs ( I use Caddy, it’s very simple), and forward port 80/443 to your reverse proxy.
Within your reverse proxy, you can tell it what port corresponds to which address and it will send you to the right service.
This is obviously an oversimplified answer, but there are many Caddy guides and I can help you with any specific questions.
+1 for Caddy, it works great and it’s super simple.