Self-Hosted Infrastructure Exploration
condensed from conversations with Claude
Git Hosting
- Forgejo — preferred over Gitea (active fork post-licensing drama); single binary, GitHub-style UI
- Woodpecker CI integrates cleanly for build/deploy pipelines
Static Sites
- Zola — single Rust binary, Tera templating (Jinja2-like), built-in Sass,
zola servefor local dev with live reload- Hey I did this one. https://chththall.fyi is built with Zola
- Supports YAML front matter (
---) so existing posts migrate without touching front matter- yeah that was false, still had to add front matter, and while at it changed most of it to TOML
- CommonMark is close to Pandoc Markdown; enable
smart_punctuationand footnotes inconfig.toml zola buildoutputs topublic/— deploy via rsync or CI- deployed via Cloudflare workers
- Quartz for Digital Cellar zk
- End state: Forgejo repo → Woodpecker CI → rsync to Caddy-served directory
- Probably should still set up Forgejo
Hosting Path
- Interim: Cloudflare Pages (free tier, 500 builds/month, global CDN, zero ops) — good bridge before VPS
- Long term: Hetzner VPS + Caddy (auto HTTPS via Let’s Encrypt, minimal config)
- Once VPS exists, serve Zola site directly from Caddy — two extra lines in Caddyfile
May not need VPS depending on what I want to do. 2026-07-27: VPS tabled for now CF working fine
Networking
- Tailscale — WireGuard-based private mesh between devices; learn this first
- Headscale — self-hosted coordination server, drop-in replacement for Tailscale’s centralized piece; migrate once VPS exists
- Natural order: Tailscale → Headscale when VPS is up
- Cloudflare Tunnel — punches through firewall for public-facing services without opening ports
File Sync
- Syncthing — P2P encrypted file sync, pairs with Tailscale for private transport
- iOS client: Möbius Sync (paid, most functional option)
- Use case: keeping
~/Documents/Repos/knowledge_library/synced across devices - iOS is low priority for now; revisit if needed
Rough Order of Operations
- Migrate site from GitHub Pages to Zola + self-hosted or Cloudflare Pages
- Syncthing for file sync if/when needed
- Explore Tailscale on existing devices
- Deploy Forgejo + Woodpecker
+ Caddy Replace Tailscale coordination with Headscale on VPSSpin up Hetzner VPS (or Oracle free tier)