Ghost CMS

Ghost CMS Deployment & Ops Guide

Complete reference manual, deployment workflows, CLI commands cheat sheet, and optimization guide for high-performance Ghost hosting.

Ghost Infrastructure Control Center

Comprehensive Ghost & Server CLI Reference
Real-time Filter Active
Category Target Command Syntax Flags & Parameters Description
Lifecycle ghost start ghost start --development, --no-prompt Boots up the local Ghost instance and brings services online.
Lifecycle ghost stop ghost stop -f, --force, --all Gracefully halts Ghost processes across active instances.
Lifecycle ghost restart ghost restart --unhandled-rejections Performs a zero-downtime reload of the Node environment.
Diagnostics ghost doctor ghost doctor -[category], --verbose Runs health checks on permissions, Node versions, MySQL, and Nginx.
Diagnostics ghost log ghost log [name] -f (follow), -n (lines) Streams production error logs and access requests live to terminal.
Diagnostics ghost status ghost status N/A Lists all running Ghost instances on the server alongside port mappings.
Maintenance ghost update ghost update [version] --force, --rollback, --v1 Pulls latest core release, runs DB migrations, and validates build.
Maintenance ghost update ghost update --rollback N/A Emergency command: reinstalls the previous stable Ghost release.
Config ghost config ghost config [key] [val] --set, --get, --env Inspects or mutates config.production.json key-value pairs.
Setup ghost install ghost install [version] --db, --url, --no-setup Fires up full automated stack installer (Nginx, SSL, Systemd, DB).
Setup ghost setup ghost setup [stage] nginx, ssl, systemd, mysql Manually re-runs individual setup stages without a full reinstall.
Database ghost bkp ghost uninstall --force Purges current directory's Ghost deployment, DB tables, and Nginx configs.
System OS systemctl sudo systemctl [action] [svc] status, restart, reload Interacts directly with the OS daemon managing your Ghost instance.
System OS nginx sudo nginx -t -t (test), -s reload Tests Nginx configuration syntax prior to applying live reloads.
System OS ufw sudo ufw allow [port] 80/tcp, 443/tcp, 'Nginx Full' Configures system firewall to allow web traffic while keeping server tight.
System OS chown/chmod sudo chown -R ghost:ghost [path] -R (recursive) Fixes permission errors blocking Ghost setup or image uploads.
Visual GUI Installation via aaPanel
Multi-site Friendly

aaPanel is ideal if you want to run Ghost alongside PHP applications, WordPress, or multiple websites on a single DigitalOcean Droplet using a visual control panel.

1. Install aaPanel Engine on Ubuntu VPS

Execute the official installation script on a fresh Ubuntu LTS Droplet:

URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ]; then curl -sSO $URL; else wget -O install_6.0_en.sh $URL; fi && bash install_6.0_en.sh forum

2. Install Core Stack & Node Manager

Log into your aaPanel dashboard. Select LNMP Stack (Nginx, MySQL 8.0). Then head to App Store → Search & Install Node.js Version Manager.

3. Set Node.js Version & Install CLI Global

Open Node Manager, select Node LTS (v18 or v20), set it as Command Line / Global. In the terminal, run:

npm install ghost-cli@latest -g

4. Provision Database & App Directory

Go to Databases → Add MySQL Database (note the DB Name, User, and Password). Then open Terminal and run:

mkdir -p /www/wwwroot/yourdomain.com cd /www/wwwroot/yourdomain.com ghost install --no-setup-nginx --no-setup-ssl

5. Configure Reverse Proxy & SSL in aaPanel

In aaPanel: Website → Add Site (Domain) → Open Site Settings → SSL (Apply Let's Encrypt). Then go to Reverse Proxy → Add Proxy → Target URL: http://127.0.0.1:2368.

Official Native CLI Installation (Production Grade)
Recommended

The official production method recommended by Ghost core engineering. Maximum efficiency, native Systemd integration, and automated Let's Encrypt SSL management.

1. OS Prep & Sudo User Creation

Ghost CLI strictly forbids running installation tasks directly as the root superuser.

sudo apt update && sudo apt upgrade -y adduser ghostuser usermod -aG sudo ghostuser su - ghostuser

2. Install Nginx, MySQL & Node.js

# Install Nginx & MySQL sudo apt install nginx mysql-server -y # Add NodeSource Repository (Node v18 LTS) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # Install Ghost CLI sudo npm install ghost-cli@latest -g

3. Configure MySQL Root Password

sudo mysql # Inside MySQL Prompt: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourSecurePassword123!'; FLUSH PRIVILEGES; EXIT;

4. Execute Ghost Interactive Installer

sudo mkdir -p /var/www/ghost sudo chown ghostuser:ghostuser /var/www/ghost sudo chmod 775 /var/www/ghost cd /var/www/ghost # Launch wizard ghost install
Production Config (`config.production.json`)

Primary configuration structure located at /var/www/ghost/config.production.json:

{ "url": "https://yourdomain.com", "server": { "port": 2368, "host": "127.0.0.1" }, "database": { "client": "mysql", "connection": { "host": "127.0.0.1", "user": "ghost_user", "password": "db_password", "database": "ghost_prod" } }, "mail": { "transport": "SMTP", "options": { "service": "Mailgun", "host": "smtp.mailgun.org", "port": 587, "auth": { "user": "postmaster@yourdomain.com", "pass": "your_mailgun_password" } } }, "logging": { "transports": ["file", "stdout"] }, "process": "systemd" }
Security & Firewall Tuning
  • UFW Firewall Rules:
    sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
  • Fix Ghost File Permissions:
    sudo find . -type d -exec chmod 775 {} \; sudo find . -type f -exec chmod 664 {} \; sudo chown -R ghostuser:ghostuser /var/www/ghost
  • Increase Nginx Upload Limit:

    Add client_max_body_size 50M; inside /etc/nginx/sites-available/yourdomain.com.conf to allow large publication asset uploads.

Ghost CMS Hall of Fame (Top Publications & Sites)
Publication / Organization Category Direct Website Link Notable Details & Infrastructure
OpenAI Blog AI & Tech Giant openai.com/blog Powers research announcements & global AI release updates on headless Ghost.
Cloudflare Blog Web Infrastructure blog.cloudflare.com Scales security research & outage breakdowns to millions of concurrent reads.
404 Media Independent Media 404media.co Journalist-owned digital media company fully funded by Ghost subscriptions & memberships.
Buffer Resources SaaS Giant buffer.com/resources Social media leader's main marketing engine & content publication platform.
Troy Hunt (Have I Been Pwned) Cybersecurity troyhunt.com High-traffic personal security blog protected by Cloudflare edge caching on Ghost.
Ethereum Foundation Crypto / Web3 blog.ethereum.org Official technical communications and core protocol updates for the Ethereum network.
Duolingo Blog EdTech blog.duolingo.com Language learning insights, product releases, and engineering culture publication.
Revolut Blog Fintech revolut.com/blog Multilingual fintech hub delivering global financial updates and feature guides.
Tinder Tech Blog Engineering tech.gotinder.com Deep-dive technical blog exploring high-scale matching algorithms and cloud architecture.
Rest of World Global Tech Journalism restofworld.org Non-profit journalism publication reporting on technology's impact outside western markets.
Lever News Investigative News levernews.com Reader-supported investigative news outlet running premium subscriptions on Ghost Native.
Packy McCormick (Not Boring) Newsletter / Finance notboring.co Top-tier business newsletter generating massive revenue through Ghost email delivery.
Top 50 Ghost Themes, Plugins & Integrations Ecosystem
Official Directory
Item Name Type Direct Resource Link Model / Price Best Practice & Key Use Case
Casper Official Theme github.com/TryGhost/Casper Free / Open Source Default Ghost theme. Clean magazine-style design, optimized out of the box for fast load times.
Source Official Theme github.com/TryGhost/Source Free / Open Source Default subscription theme. Designed specifically for newsletters and membership conversions.
Edition Official Theme github.com/TryGhost/Edition Free / Open Source Minimalist theme built for individual creators, newsletter authors, and personal blogs.
Ruby Official Theme github.com/TryGhost/Ruby Free / Open Source Lightweight theme designed for publications with a heavy emphasis on featured imagery.
Journal Official Theme github.com/TryGhost/Journal Free / Open Source Text-focused, editorial layout suited for essayists, authors, and opinion writers.
Liebling Community Theme github.com/eddiesigner/liebling Free / Open Source Most popular third-party theme. Includes built-in dark mode toggle, multi-language support, and clean layout.
Mapache Premium Theme ghost.org/themes Paid Feature-rich news and magazine theme with high density layout and custom widget areas.
Groove Premium Theme brightthemes.com Paid Modern dark/light membership theme built specifically for tech publications and podcasts.
Klar Premium Theme aspirethemes.com Paid Minimalist theme engineered for fast performance, custom search integration, and dark mode.
Nur Premium Theme aspirethemes.com Paid Clean design tailored for personal branding, consultants, and premium newsletters.
Mailgun Core Integration mailgun.com Freemium / Paid Official bulk email delivery API required by Ghost to dispatch newsletter campaigns.
Plausible Analytics Analytics Plugin plausible.io Open Source / Paid Lightweight (<1KB script), privacy-focused alternative to GA4. Inject script into Ghost Header.
Fathom Analytics Analytics Plugin usefathom.com Paid GDPR-compliant, cookieless analytics platform. Fast script execution via Code Injection.
Google Analytics 4 Analytics Plugin analytics.google.com Free Standard enterprise tracking. Paste `gtag.js` into Site Settings → Code Injection.
Pagefind Search Engine pagefind.app Free / Open Source Ultra-fast static search library that indexes Ghost static assets with near-zero overhead.
Algolia Search Engine algolia.com Freemium Instant real-time search engine for high-content publications using Ghost Webhooks.
Ghost-Search Search Plugin github.com/jamessw/ghost-search Free / Open Source Client-side search plugin leveraging the Ghost Content API directly.
Native Ghost Comments Comment Plugin ghost.org/docs Built-in Native membership-gated commenting system included in Ghost core.
Cove Comments Comment Plugin cove.chat Paid Commenting tool built exclusively for Ghost members using Ghost OAuth.
Discourse Community Forum discourse.org Open Source / Paid Embed forum discussion threads directly underneath Ghost blog posts.
Remark42 Comment Plugin remark42.com Free / Open Source Self-hosted, lightweight commenting engine with privacy focus and social login.
n8n Workflow Automation Automation n8n.io Open Source / Paid Self-hostable Zapier alternative. Connect Ghost webhooks to Discord, Telegram, or databases.
Zapier Integration Automation zapier.com Freemium Automate cross-posting to social networks when new Ghost posts are published.
Make.com Automation make.com Freemium Visual workflow builder for complex webhook routing, subscriber syncing, and CRM triggers.
Cloudflare R2 Adapter Storage Plugin github.com Free / Open Source Offload uploaded media assets to Cloudflare R2 bucket with zero egress fees.
AWS S3 Storage Adapter Storage Plugin github.com Free / Open Source Offload images to Amazon S3 bucket to save local VPS disk space.
Web-Guru Secrets & Power Tricks

Headless Ghost Configuration

Disconnect the front-end Handlebars theme entirely and consume Ghost strictly as a Headless CMS via the Content API using Next.js, Astro, or Nuxt for ultimate performance.

Newsletter Deliverability Optimization

Always set up custom SPF, DKIM, and DMARC DNS records inside your DNS provider (e.g., Cloudflare) matching your Mailgun domain to guarantee 99%+ inbox placement.

Automated Daily MySQL Offsite Backups

Schedule a cron job using mysqldump coupled with AWS CLI or Cloudflare R2 to automatically package and offload daily database snapshots offsite.

Cloudflare R2 Storage Adapter

Avoid filling up your VPS SSD storage by replacing Ghost's local image storage with an S3/R2 storage adapter plugin for unlimited media asset scaling.