hello-homelab

Served from a closet, not a cloud.

This page runs in a Docker container on docker3, a virtual machine in a homelab, and reaches you through a Cloudflare tunnel. No platform, no rate limits.

Right now

Status
Live
Host
docker3 · container effccca2062c
Deployed
2026-10-09 18:29 UTC · 3 days ago
This request
2026-10-13 07:41:04 UTC

How a push becomes a deploy

  1. You pushgit push

    The commit lands on GitHub. Your laptop never talks to the homelab.

  2. The VM polls*/2 * * * * pull.sh

    Every two minutes cron on the VM runs git fetch with a read-only deploy key.

  3. Only if it movedgit reset --hard FETCH_HEAD

    Same commit as last time? The script exits. A new one? It checks it out.

  4. Rebuilddocker build && docker run

    The image is rebuilt and the container replaced, about 15 seconds of work.

  5. Servecloudflared → :3100

    The tunnel on docker1 forwards this hostname to the VM. No ports are open to the internet.