A Raspberry Pi sitting on your desk can serve a website, run an API, host a game server, or do anything else you'd do on a VPS - and it costs you nothing beyond the hardware. The missing piece is a stable public address. Here's how to sort that out with localnode.app.

What you need

Step 1: Set up port forwarding

Log into your router's admin panel (usually 192.168.1.1 or 192.168.0.1). Find the port forwarding section and forward port 80 (HTTP) and/or 443 (HTTPS) to your Pi's local IP address. To find the Pi's local IP: hostname -I.

While you're in the router, give the Pi a DHCP reservation so its local IP never changes.

Step 2: Create your subdomain and enable DDNS

In your localnode.app dashboard, create a subdomain and enable DDNS. Copy the DDNS key shown on the subdomain card.

Step 3: Auto-update your IP

On the Pi, create a cron job to keep the DNS record pointing at your current external IP:

*/5 * * * * curl -s "https://localnode.app/api/ddns.php?key=YOUR_KEY" > /dev/null

This runs every five minutes. If your ISP changes your IP, the record updates within five minutes automatically.

Step 4: Install a web server

sudo apt install nginx and drop your site in /var/www/html. Your subdomain should now serve your Pi's content to anyone in the world.