Best VPS for Ghost 2026: Self-Host Your Publishing Platform
REVIEW 9 min read fordnox

Best VPS for Ghost 2026: Self-Host Your Publishing Platform

Find the best VPS for Ghost CMS. Compare hosting options, set up your own Ghost blog, and run a professional publishing platform for under $10/month.


Best VPS for Ghost in 2026

Ghost is the modern publishing platform — clean, fast, and built for creators. Self-host it on a VPS and skip the $25-299/month Ghost(Pro) fees.

Why Self-Host Ghost?

Factor Ghost(Pro) Self-Hosted VPS
Starter Price $25/mo ~$5/mo
Creator Price $50/mo ~$5/mo
Business Price $199/mo ~$10/mo
Custom Themes
Members & Newsletters
Custom Integrations Limited Unlimited
Data Ownership Their servers Your server

Self-hosting Ghost saves $20-190+/month while keeping all features.

VPS Requirements

Ghost is Node.js-based and relatively light:

Minimum:

Recommended:

High Traffic:

Ghost runs well on modest resources. Add more for heavy traffic or many members.

Best VPS for Ghost

1. Hetzner CX11 (Best Budget)

€3.79/mo | 1 vCPU, 2GB RAM, 20GB NVMe

Perfect for personal blogs and small publications. 2GB RAM handles Ghost comfortably.

2. Hostinger KVM1 (Best Value)

$4.99/mo | 1 vCPU, 4GB RAM, 50GB NVMe

4GB RAM leaves room for growth. 50GB storage is generous for media-heavy blogs.

3. DigitalOcean Basic (Best for Beginners)

$6/mo | 1 vCPU, 1GB RAM, 25GB SSD

DigitalOcean has Ghost one-click droplet and excellent tutorials.

4. Vultr (Best Global Reach)

$6/mo | 1 vCPU, 1GB RAM, 25GB SSD

32 locations — put Ghost close to your audience.

Ghost-CLI Setup (Recommended)

Ghost provides an official CLI that handles everything.

Step 1: Create VPS

Ubuntu 22.04 recommended. SSH in:

ssh root@your-vps-ip

Step 2: Initial Setup

# Update system
apt update && apt upgrade -y

# Create ghost user
adduser ghost
usermod -aG sudo ghost

# Install dependencies
apt install -y nginx mysql-server nodejs npm

# Install Ghost-CLI
npm install -g ghost-cli

Step 3: Prepare MySQL

mysql_secure_installation
# Set root password, answer Y to security questions

mysql -u root -p
CREATE DATABASE ghost_production;
CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'your-secure-password';
GRANT ALL PRIVILEGES ON ghost_production.* TO 'ghost'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Step 4: Install Ghost

su - ghost
sudo mkdir -p /var/www/ghost
sudo chown ghost:ghost /var/www/ghost
cd /var/www/ghost

ghost install

The CLI asks:

That's it! Ghost is running.

Step 5: Access Admin

Go to: https://yourdomain.com/ghost

Create your admin account and start publishing.

Docker Setup (Alternative)

For container-based deployment:

version: '3.8'

services:
  ghost:
    image: ghost:5-alpine
    container_name: ghost
    restart: unless-stopped
    environment:
      url: https://yourdomain.com
      database__client: mysql
      database__connection__host: db
      database__connection__user: ghost
      database__connection__password: your-password
      database__connection__database: ghost
      mail__transport: SMTP
      mail__options__host: smtp.mailgun.org
      mail__options__port: 587
      mail__options__auth__user: postmaster@yourdomain.com
      mail__options__auth__pass: your-smtp-password
    volumes:
      - ghost-content:/var/lib/ghost/content
    depends_on:
      - db

  db:
    image: mysql:8
    container_name: ghost-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root-password
      MYSQL_DATABASE: ghost
      MYSQL_USER: ghost
      MYSQL_PASSWORD: your-password
    volumes:
      - ghost-db:/var/lib/mysql

  caddy:
    image: caddy:alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy-data:/data

volumes:
  ghost-content:
  ghost-db:
  caddy-data:

Caddyfile:

yourdomain.com {
    reverse_proxy ghost:2368
}

Email & Newsletter Setup

Ghost's killer feature is built-in newsletters. You need email:

Mailgun (Recommended by Ghost)

# In Ghost admin: Settings → Email newsletter
# Add Mailgun API key and domain

Resend (Modern Alternative)

Works with Ghost's custom SMTP:

{
  "mail": {
    "transport": "SMTP",
    "options": {
      "host": "smtp.resend.com",
      "port": 587,
      "auth": {
        "user": "resend",
        "pass": "re_xxxx"
      }
    }
  }
}

Self-Hosted (Postal/Mailu)

For complete control, run your own mail server. Complex but zero per-email costs.

Membership & Payments

Ghost includes membership/subscription features:

Stripe Integration

  1. Ghost Admin → Settings → Membership
  2. Connect Stripe
  3. Set pricing tiers

No additional plugins needed — it's built in.

Member Tiers

Create different access levels:

Ghost handles payments, access control, and member management.

Performance Optimization

Enable Caching

Ghost is fast by default, but add caching:

In Nginx, before the Ghost location block:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Use Cloudflare

  1. Add site to Cloudflare
  2. Enable caching
  3. Use Full SSL mode
  4. Enable Brotli compression

Free tier is plenty for most Ghost sites.

Image Optimization

Ghost handles responsive images, but also:

Backup Strategy

Automatic Backups

#!/bin/bash
# ghost-backup.sh
DATE=$(date +%Y%m%d)
BACKUP_DIR="/home/ghost/backups"

mkdir -p $BACKUP_DIR

# Database
mysqldump -u ghost -p'password' ghost_production > $BACKUP_DIR/db-$DATE.sql

# Content
tar czf $BACKUP_DIR/content-$DATE.tar.gz /var/www/ghost/content

# Keep last 7 days
find $BACKUP_DIR -mtime +7 -delete

# Optional: upload to remote
# rclone copy $BACKUP_DIR remote:ghost-backup/

Schedule:

crontab -e
0 3 * * * /home/ghost/ghost-backup.sh

Ghost Export

Ghost Admin → Settings → Labs → Export

Downloads JSON with all content. Good for migration.

Update Ghost

Via Ghost-CLI

cd /var/www/ghost
ghost update

Via Docker

docker compose pull
docker compose up -d

Ghost updates are usually smooth. Read release notes first for major versions.

Themes

Official Themes

Ghost includes several themes. Casper is default.

Marketplace Themes

Custom Development

Themes use Handlebars templating:

cd /var/www/ghost/content/themes
git clone https://github.com/your-theme your-theme

# In Ghost Admin
# Settings → Design → Change theme

Common Issues

502 Bad Gateway

# Check Ghost status
ghost status

# Restart Ghost
ghost restart

# Check logs
ghost log

Memory Issues

Add swap:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

SSL Certificate Renewal

Ghost-CLI sets up auto-renewal. Verify:

certbot renew --dry-run

Ghost vs WordPress

Feature Ghost WordPress
Speed Faster Slower
Security More secure Plugin risks
Bloat Minimal Can be heavy
Newsletters Built-in Plugin needed
Memberships Built-in Plugin needed
Themes Fewer Thousands
Plugins None Thousands
Learning Curve Low Low

Ghost is focused. WordPress is flexible. Pick based on needs.

Resource Usage

Typical Ghost installation:

Component RAM
Ghost (Node) 150-300MB
MySQL 300-500MB
Nginx 20MB
Total 500MB-1GB

1GB VPS works. 2GB is comfortable.

FAQ

Is Ghost really free?

The software is free and open source. You pay only for hosting.

Can I migrate from WordPress?

Yes! Ghost has a WordPress importer. Content transfers easily; themes need rebuilding.

How does Ghost make money?

Ghost(Pro) managed hosting. The Foundation doesn't need you to self-host less.

Is self-hosted Ghost secure?

Yes. Keep it updated, use SSL, and you're set. Simpler than WordPress.

Can Ghost handle high traffic?

Yes. Ghost is Node.js and handles traffic well. Add Cloudflare for extra protection.

Recommended Setup

Use Case VPS Monthly Cost
Personal Blog Hetzner CX11 €3.79
Small Publication Hostinger KVM1 $4.99
Growing Newsletter Hetzner CX21 €5.39
High Traffic Hetzner CX31 €10.49

Start with Hetzner CX11 at €3.79/month — that's $45/year vs Ghost(Pro)'s $300/year minimum.

Self-hosting Ghost is one of the best value propositions in publishing.

~/best-vps-for-ghost/get-started

Ready to get started?

Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.

Get Hostinger VPS — $4.99/mo

// up to 75% off + free domain included

// related topics

best vps for ghost ghost hosting self-hosted ghost ghost cms vps ghost blog setup

fordnox

Expert VPS reviews and hosting guides. We test every provider we recommend.

// last updated: February 8, 2026. Disclosure: This article may contain affiliate links.