view the rest of the comments
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
NPM won't help you here. As you said, it's only for http. You will have to set up port forwarding in your router. But as far as I recall Minecraft changes its port with every game. So you could either change that in your router every time you start another game.
But it would be better (for security as well) to set up a VPN. Many routers actually have that built in.
That is, if your goal is to have your Minecraft server reachable through the internet.
For DNS you will need a Dynamic DNS service to let the name always point to your public IP. For this as well many routers have built-in functionality. Maybe even a preferred service.
With Crafty you can bind a specific port.
I use tailscale for public access, and have set it up so tailscale users can access the domain.
I guess what I'm asking for is NPM but for tcp.
Regular nginx does this just fine https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/
Keep in mind that you can't route tcp by hostname, because hostname is not a property of tcp. It only knows IP addresses. Host routing requires a protocol like HTTP.
Port forwarding is what you're looking for. You almost certainly can configure that in your router. You tell it what the port in the outside should be and to what IP and port in your LAN it should go.
Edit: Just saw your other comments. I'm a bit at a loss.