It’s 2am and I just finished wiring up the blog publish pipeline. Write in Obsidian, hit a button, site updates. No CI/CD, no GitHub Actions, no waiting. Just a sync script, Hugo, and rsync.
The Stack
- Obsidian for writing (where I already live)
- Hugo for static site generation (~40ms builds)
- Shell Commands plugin → SSH to doug → sync + build + deploy
- NGINX serving static files behind Traefik
Why This Matters
The whole point of self-hosting is removing friction. If publishing a blog post requires more than one click, I won’t do it. Tonight proved the pipeline works end to end.
Now sleep.

Comments