Let me tell you about the theory of my weird homelab imagination.

I want to run a rack server in an undisclosed location, with a dynamic IP address. I want it to be flexible so it can be easily moved and resistant to deplatforming. It will host public websites.

It consists of two essential parts: "keystone" and "decoy"

"keystone" is the entrypoint of my rack - one big http server (running caddy, not nginx), that routes traffic to hostnames within my internal network.

"decoy" is a cloud VPS, running nginx, which streams requests to the keystone over WireGuard.

DNS is all pointed at "decoy".

From the outside, it looks like the cloud VPS is hosting the sites. In reality I pay them very little money to just transfer data, and I can easily switch to a different provider. As a result, I get a static IP and a layer of protection/obscurity from the VPS, but the rack will continue to "just work" even if the decoy is changed or even removed. Only DNS entries would need to be updated.

This is not exactly groundbreaking. I know people have used VPNs to route traffic for decades. The main thing that's new is just my weird terminology for it.

To connect the "keystone" and the "decoy" together... I call this "trepanning".

I want to make this easily reproducible so others can copy my setup. Later I will release code and a guide.

nostr:nevent1qvzqqqqqqypzqprpljlvcnpnw3pejvkkhrc3y6wvmd7vjuad0fg2ud3dky66gaxaqydhwumn8ghj7emvv4shxmmwv96x7u3wv3jhvtmjv4kxz7gqyrm5kdaazpcukade8n9mgzaa54624hcxvd0dr0xkwuxyhe6vemdx7zuktv0

Reply to this note

Please Login to reply.

Discussion

What's the plan for dns name takeover? For address?

Find a new vps provider for decoy, repoint DNS to new IP. I've done this before, it takes an hour if you already have a backup available, which I recommend.

I just call keystone "local homelab" and decoy "front door" 🤣

Nevermind, you said DNS; I read VPS 🤦‍♂️

Is this like Flat Stanley but for those with a touch of the 'tism?

You can use tinc vpn to connect your decoy and keystone servers. It's pretty easy and will autoconnect. Use fixed IP addresses in your decoy host file and setup keystone config to connect to the decoy.

I once used two decoys to provide web access to one keystone using this method and it worked very well.

On the other hand, maybe you want to consider to containerize all your services in your keystone server. I just use a simple debian 12 minimum server with docker installed. Just export the ports from running containers and the caddies in the remote can do the reverse proxy.

I have got rebased+soapbox and ditto+soapbox dockerized and they just keep running.