The article describes a method to serve a web server from a dial-up connection with a volatile IP address using a cron job and SSH to update a reverse proxy configuration.
# Serving Web from volatile Dial-up IP
Source: [https://blog.mro.name/2026/09/web-from-dial-up/](https://blog.mro.name/2026/09/web-from-dial-up/)
My homelab is behind a dial\-up IP link with occasional unexpected reconnects\.
There is dynamic DNS, but I prefer a reverse proxy[\[1\]](https://blog.mro.name/2026/09/web-from-dial-up/#fn:prx)between the bots and me\. And dyndns doesn't notify other servers \(the reverse proxy\)\.
## No push? Then poll\.
There's a cron\-job on the homelab server triggering a refresh of the reverse proxy cfg if the IP has changed:
```
# note: no sudo
$ crontab -l
*/15 * * * * .local/bin/http-up.sh snac.mro.name vps.mro.name /var/www/vhosts/snac.mro.name/proxy-dyndns.conf
```
with a \(local\) script doing the heavy lifting \(shell escaping mostly\):
```
#!/bin/sh
[ "$3" = "" ] && {
cat <<EOFz
Check if localhost can curl an url and if not, envsubst the current IP as \$IPv4
into a (remote) reverse proxy config in case & reload (lighttpd).
SYNOPSIS
\$ $0 <http url> <ssh host> <reverse proxy cfg file>
EOFz
exit 0
}
curl \
--fail \
--location \
--max-time 3.1 \
--output /dev/null \
--silent \
"$1" \
&& exit 0
ssh -4 "$2" \
"IPv4=\$(echo \$SSH_CLIENT | cut -d ' ' -f 1) envsubst \
< \"$3.tpl\" \
> \"$3\"
sudo service lighttpd reload
ls -l \"$3\" "
```
After DSL reconnects, the server comes back online with the new IP within the next 15 minutes \- fine for me\. No other parties involved and the volatile host notifies the passive reverse proxy\.
And: I can make do with cron & ssh and need no other tools or services\.
Chris Siebenmann explains his anti-crawler measures that block old browsers due to a surge in high-volume crawlers collecting data for LLM training, causing confusion for feed readers and archival services.
This tutorial outlines how to host a diskless website on a Raspberry Pi Zero v1.3 using Alpine Linux, booting entirely into its 512MB of RAM. It details the required hardware, OS configuration, lightweight web servers, and offloading TLS termination to an external VPS.