For Ghost
Modern publishing,
self-hosted properly
Run Ghost on a real VM with S3-compatible media storage and a global CDN. Newsletters, paid subscriptions, members — all the features of Ghost(Pro), on infrastructure you control.
# bootstrap-ghost.sh
npm install -g ghost-cli
ghost install --db mysql --process systemd
npm install ghost-storage-adapter-s3
# config.production.json — Edge Storage
"storage": {
"active": "s3",
"s3": {
"endpoint": "https://storage.edge.run",
"bucket": "ghost-media"
}
}
# Front it with the CDN
$ edge cdn create blog.example.com ...
Why publishers move to Edge
All the polish of Ghost(Pro), none of the per-member pricing.
A real publishing platform
Posts, pages, members, newsletters, paid subscriptions and a beautiful editor — out of the box, all open source, no Substack tax.
S3-compatible media storage
Drop in the official S3 storage adapter and point it at Edge Storage. Image uploads, theme assets and exports live in a durable bucket.
Image transforms on the CDN
Ghost includes responsive image processing, but for high-volume sites you can hand off to Edge Image Optimization for AVIF/WebP at the edge.
Bring your own email provider
Wire Ghost up to Mailgun, Postmark, AWS SES or anything SMTP. Newsletters and member emails work the same as on Ghost(Pro).
Global CDN, zero egress
Front the public site through the Edge CDN. Member-only and admin routes fall through to your VM; everything else is cached worldwide.
Predictable bills
A small VM, a CDN deployment and a bucket — no per-member pricing surprises and no platform percentage on subscription revenue.
Reference architecture
How Ghost maps to Edge
A standard Ghost stack — Node + MySQL on a VM — with media offloaded and the front-end cached at the edge.
Runs Ghost (Node.js) + MySQL on a VM, behind Nginx or Caddy
S3-compatible bucket for the `images` content adapter and exports
Caches the public site globally; admin and member-only routes hit origin
Optional: replace Ghost's built-in resize with edge transforms
Anycast DNS for the apex, www and any newsletter sending subdomains
Indicative cost
Newsletter + paid memberships
~10k members, weekly newsletter, ~50k monthly site visits
Indicative figures. Email volume affects bills more than hosting at this scale.
Common questions
Self-hosted Ghost vs Ghost(Pro)?
Same software, different host. Ghost(Pro) is the official managed service (which funds Ghost development). Self-hosted gives you root access, custom plugins via the Admin API, and predictable bills — at the cost of running a VM yourself.
How do members and Stripe payments work?
Identical to Ghost(Pro). You connect your own Stripe account, set tiers and prices in the admin, and Ghost handles checkout, gating and recurring billing. Edge has no involvement in the money side.
Where do email newsletters go?
Plug Ghost into Mailgun (Ghost's recommended provider) or any SMTP service for transactional email. Newsletter sending happens directly between Ghost and your email provider — no traffic through Edge.
How do I deploy a Ghost theme?
Either zip-upload via the admin, or commit themes alongside Ghost in your repo and pull on deploy. The bootstrap script handles install, theme placement and starting the systemd service.
By Stack
Other stacks on Edge
Own your publication
30-day trial. Migrate from Substack or stand up a fresh Ghost site — we'll help with the bootstrap.