Setup a Self-Hosted Ghost Blog with Docker and Caddy

Ghost blogging platform offers simplicity, but email configuration presents challenges. This guide demonstrates deploying Ghost via docker-compose with Caddy as a reverse proxy. Core Setup The Ghost documentation provides foundational installation steps. Caddy can handle wildcard domain certificates through Let’s Encrypt for HTTPS security. Email Configuration Options Transactional Emails (signup/subscriptions): Mailtrap free tier maintains your domain reputation Gmail alternative available if you accept third-party domain indicators Newsletters (bulk messages): Mailgun offers a free tier suitable for low-volume blogs Configuration requires editing config.production.json with SMTP credentials Gmail SMTP Configuration Generate a dedicated app password via Google Account security settings, then configure Ghost with these credentials in the mail section of your production configuration file. ...

August 22, 2025 · Geoff Corey

Caddy, Wildcard Certs and Ghost

The Problem Hosting multiple applications on subdomains requires a strategy for SSL certificates. The specific example involves deploying Ghost blogging software to blog.geoffcorey.com while redirecting the root domain to this subdomain. The setup uses wildcard Let’s Encrypt certificates to avoid generating separate certificates for each subdomain. Cloudflare API Token DNS configuration requires Cloudflare. The CaddyBuilds/caddy-cloudflare Docker image provides DNS challenge support for obtaining wildcard certificates. Setup: Docker Compose & Caddy Configuration docker-compose.yml The configuration includes three services: ...

May 23, 2025 · Geoff Corey