Exposed my home server (again)My past self was dumb |
Version | v0.1 | |
|---|---|---|---|
| Updated | |||
| Author | Gerard Gascón | License | CC BY 4.0 |
My present self is preceded by my past self’s mistakes that only my future self will be able to solve.
Last year I wanted to expose my home server; at first I used Cloudflared but stumbled upon some limitations. Then, I decided to make my own solution using a VPS. The problem is, I didn’t benchmark that solution. Not until a couple of days ago, when I noticed that the download speed of that tunnel was 10Mbps while my home internet is 1Gbps.
Anyway, you can see the previous setup in this post (do yourself a favor and don’t replicate that).
This is the place where I showcase my “ultimate setup” until my future self comes back and says: “This is the dumb self”.
Anyway, I’ve deployed a new setup that’s both, simpler, and faster. In this new setup I’ve replaced Tailscale with WireGuard; with this, I generate a tunnel that connects my home server and the VPS.
Then, I have an NGINX instance that forwards server’s traffic from port 80 and 443 to my home server, and inside my home server I have the “gateway”, that gateway is basically an NGINX Proxy Manager instance that routes some URL requests, to the proper services.
I could have removed the NGINX instance from my VPS, but I prefer having a dockerized instance where I can just do “docker compose up -d” than having to reconfigure the entire networking if I ever change the VPS.
In the end, I ended up going from 10Mbps to in between 100 and 300 Mbps depending on the situation, which is actually really good considering the type of workaround this setup is.
And that’s all, folks. If you are curious, I’m using an AWS Lightsail in the lowest tier possible.
Anyway, here’s my VPS setup: git.gerardgascon.com
And here’s my home server setup: git.gerardgascon.com