Most Hugo tutorials end with “deploy to Netlify” or “push to GitHub Pages.” If you’re running your own infrastructure, neither of those is satisfying. Here’s the pipeline I settled on for deploying this site to a self-hosted Caddy VM.
Architecture
Windows dev machine Caddy VM (DMZ)
──────────────── ──────────────
hugo --minify ──── SCP ────▶ /opt/caddy/site/
Caddy serves static files
Cloudflare proxies + caches
No containers. No CI runners. No GitHub. The pipeline is a batch script, a Caddy file_server block, and an SSH key.
[Read More]