TUTORIAL / HOW TO: Set Up Ghost on DigitalOcean in 10 Minutes

TUTORIAL / HOW TO: Set Up Ghost on DigitalOcean in 10 Minutes

2 min read
Skip the expensive managed hosting. Get Ghost running on a $6/month droplet with automatic SSL, backups, and updates.

Prerequisites

  • A domain name ($12/year from Namecheap)
  • DigitalOcean account (get $200 credit with referral)
  • 10 minutes

That's it. No terminal experience needed.

Step 1: Create Your Droplet

  1. Log into DigitalOcean
  2. Click Create → Droplets
  3. Choose Marketplace tab
  4. Search for Ghost
  5. Select the Ghost image

Configuration

Setting Choose
Plan Basic ($6/month)
CPU Regular (cheapest)
Region Closest to audience
Authentication Password (easier)
Hostname your-site-name

Click Create Droplet. Wait 60 seconds.

Step 2: Initial Setup

  1. Copy your droplet's IP address
  2. Open browser: http://YOUR-IP-ADDRESS
  3. Ghost setup screen appears

Create your admin account:

  • Blog title
  • Name
  • Email
  • Password

You now have Ghost running. But let's add your domain.

Step 3: Point Your Domain

In your domain registrar:

Type Name Value
A @ YOUR-IP-ADDRESS
A www YOUR-IP-ADDRESS

DNS propagates in 5-30 minutes. Check at whatsmydns.net.

Step 4: Configure Ghost Domain

SSH into your droplet:

ssh root@YOUR-IP-ADDRESS

Run the setup:

cd /var/www/ghost
ghost config url https://yourdomain.com
ghost setup nginx ssl

The SSL prompt appears:

  • Enter email
  • Agree to terms
  • Certificate installs automatically

[TOGGLE BLOCK: "Common SSL Issues"]
"Invalid email" error

  • Use a real email address

"Connection refused"

  • Wait for DNS propagation
  • Check A records

"Certificate limit"

  • You hit Let's Encrypt rate limit
  • Wait 1 hour

Step 5: Email Configuration

Ghost needs email for member signups.

Quick Mailgun Setup:

  1. Sign up at Mailgun (free tier)
  2. Verify your domain
  3. Get credentials:
    • Domain
    • API Key
    • Region (US or EU)

Add to Ghost:

ghost config mail.transport mailgun
ghost config mail.options.auth.user YOUR-MAILGUN-USERNAME
ghost config mail.options.auth.pass YOUR-MAILGUN-PASSWORD
ghost restart

Optimization Checklist

Task Command Why
Enable backups In DigitalOcean dashboard Auto weekly backups
Set timezone timedatectl set-timezone Correct post times
Update Ghost ghost update Monthly updates
Check logs ghost log Debug issues
Restart Ghost ghost restart After changes

Performance Tweaks

Enable Caching

ghost config caching.frontend.maxAge 600
ghost restart

Image Optimization

Already included. Ghost auto-optimizes uploads.

CDN Setup

Optional but recommended:

  1. Sign up for Cloudflare (free)
  2. Add your site
  3. Update nameservers
  4. Enable "Full SSL"

Maintenance Commands

# Check status
ghost status

# View logs
ghost log

# Update Ghost
ghost update

# Backup content
ghost backup

# Restart after changes
ghost restart

Total Costs

Service Monthly Annual
DigitalOcean $6 $72
Domain $1 $12
Email (Mailgun) $0* $0
CDN (Cloudflare) $0 $0
Total $7 $84

*Free up to 1,000 emails/month

Compare to Ghost(Pro) at $25/month = $300/year.

When You're Stuck

Ghost won't start:

ghost doctor
ghost restart

SSL not working:

ghost setup nginx ssl --force

Out of memory:
Upgrade to $12/month droplet

Site is slow:
Enable Cloudflare CDN

Next Steps

Your Ghost site is live, secure, and fast. Now:

  1. Install a theme (like Neutrino)
  2. Configure members/newsletters
  3. Start publishing
  4. Set up automatic backups

The entire setup: 10 minutes. The monthly cost: Less than a coffee.

Natan Nikolic
Natan Nikolic — Freelance product designer based in London. Before founding about:blank studio, he was VP of Product at Celtra, and helped entrepreneurs build startups 0-1.