How to Install Ghost (Blogging Platform) on a VPS

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

Browse more articles in CMS Platforms Beyond WordPress.

  • ghost cms installation vps, ghost-cli setup, self hosted blogging platform, ghost newsletter membership
  • 0 משתמשים שמצאו מאמר זה מועיל
?האם התשובה שקיבלתם הייתה מועילה

מאמרים קשורים

How to Install Drupal on a VPS

Drupal is a powerful, highly flexible open-source CMS well-suited for complex content structures,...

How to Install Joomla on a VPS

Joomla is a mature, feature-rich open-source CMS offering a middle ground between WordPress's...

How to Install Craft CMS on a VPS

Craft CMS is a developer-friendly, content-first CMS known for its flexible content modeling and...

How to Install TYPO3 on a VPS

TYPO3 is an enterprise-grade CMS widely used in Europe for large, complex websites needing...

How to Install Grav (Flat-File CMS) on a VPS

Grav is a modern, flat-file CMS — it stores content as files rather than in a database,...