Web Development & Hosting
I build, host, and serve websites and web applications across a self-managed infrastructure - from Ghost CMS on Hetzner to Caddy-proxied Docker services and static deploys on Cloudflare.
Sites I Build & Host
sharedsapience.com
Primary content hub powered by a self-hosted Ghost CMS instance. Hosts the Century Report newsletter, blog posts, and long-form AI analysis. Ghost runs in Docker on a headless Ubuntu 24 Hetzner VPS.
companioncraft.com
Product and business site for CompanionCraft, hosting the Sam social media manager product page, documentation, and client payments portal via Invoice Ninja.
ben-linford.com
This portfolio site - built with Next.js 16, React 19, Tailwind CSS 4, and TypeScript. Statically generated and deployed to Cloudflare Pages.
Hosting Infrastructure
Self-Hosted Ghost CMS
sharedsapience.com runs on Ghost, self-hosted in a Docker container on a Hetzner cloud VPS running headless Ubuntu Server 24. Full control over theming, newsletters, membership, and content delivery.
Hetzner VPS
Headless Ubuntu Server 24 instance on Hetzner. Hosts Ghost CMS and serves as an additional endpoint in the infrastructure mesh alongside the home lab nodes.
Cloudflare Tunnel & DNS
A Cloudflared tunnel routes external traffic to internal services without exposing the home IP. Cloudflare handles DNS, SSL/TLS termination, and DDoS protection for all domains.
Caddy Reverse Proxy
Caddy runs on a dedicated node (Lunanode4) and reverse-proxies 50+ internal services to subdomains. Custom header management, timeouts, and WebSocket upgrades configured per-route.
Multi-Domain Architecture
Multiple domains managed through Cloudflare - each with DNS records, tunnel routes, and SSL handled automatically. Subdomains map to internal Docker containers via Caddy.
GitHub Pages & Static Hosting
Static sites and documentation hosted via GitHub Pages and Cloudflare Pages. CI/CD pipelines handle builds and deployments on push.