Ghost is a modern, purpose-built publishing platform focused on blogging and content creation, with a cleaner, more focused feature set than general-purpose CMS platforms. This guide covers self-hosted setup.
Why Consider Ghost Over WordPress for Publishing-Focused Sites
Ghost is deliberately more focused — built specifically for publishing/blogging rather than WordPress's broader general-purpose CMS scope — often resulting in better out-of-box performance and a more streamlined editorial experience for content-focused sites.
Step 1 — Install Node.js and MySQL
See How to Set Up Node.js on AlmaLinux/Rocky Linux and How to Install MySQL/MariaDB — Ghost requires both a current Node.js version and MySQL as its database.
Step 2 — Install Ghost-CLI
sudo npm install ghost-cli@latest -g
Step 3 — Create the Ghost Installation Directory
sudo mkdir -p /var/www/ghost
sudo chown ghost-user:ghost-user /var/www/ghost
cd /var/www/ghost
Ghost-CLI expects specific ownership/permissions on its installation directory; running as a dedicated non-root user (see How to Implement the Principle of Least Privilege on a Linux VPS) rather than root is the recommended, secure approach.
Step 4 — Install Ghost
ghost install
The interactive installer handles database configuration, Nginx setup, and SSL certificate provisioning as part of the guided process — notably more integrated/automated than many other CMS platform installations covered in this Knowledge Base.
Step 5 — Access the Admin Panel
https://yourdomain.com/ghost/
Managing Ghost with Ghost-CLI
ghost start
ghost stop
ghost restart
ghost update
Ghost-CLI provides its own management commands, handling much of the operational complexity that would otherwise require manual systemd/Nginx configuration for a typical Node.js application.
Backing Up Ghost
ghost backup
Ghost-CLI includes a built-in backup command — still worth integrating into your broader backup strategy (see How to Set Up Automated VPS Backups) rather than relying solely on manual execution.
Setting Up Newsletter/Email Functionality
Ghost has built-in newsletter capability — requires configuring an email sending service (see How to Send Email via SMTP Relay from Your Application for the general pattern) since Ghost itself doesn't handle bulk email delivery infrastructure directly.
Configuring Membership/Subscription Features
Ghost supports paid membership/subscription functionality natively, integrating with Stripe for payment processing — see How to Set Up Subscription and Recurring Billing on a VPS for the general recurring billing concepts underlying this integration.
Choosing and Customizing a Theme
Ghost uses its own templating system (Handlebars-based) distinct from WordPress themes — several official and community themes are available, or you can develop custom themes following Ghost's specific theme documentation.
Common Errors
ghost install fails with permission errors — verify you're running as a non-root user with appropriate sudo access, and that the installation directory has correct ownership; Ghost-CLI is specifically designed to refuse running as root for security reasons.
Continue Reading
- How to Install MySQL/MariaDB on AlmaLinux/Rocky Linux
- How to Send Email via SMTP Relay from Your Application
- How to Set Up Subscription and Recurring Billing on a VPS
Browse more articles in CMS Platforms Beyond WordPress.