Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk8 min

Ghost Blog System Requirements for Self-Hosting (2026)

Ghost's supported production stack is Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, Systemd and at least 1 GB RAM. This guide explains why 2 GB is more practical for many small sites and how to install, secure, maintain and scale a self-hosted publication.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a supported Ghost 6 production installation, use Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, Systemd, a non-root user, and a server with at least 1 GB of memory. Treat 1 GB as the documented floor, not a promise of comfortable operation: a 2 GB RAM VPS is a more practical starting point for a small site because the server also runs the database, web server, mail and security services.

Self-hosting also means operating the machine yourself. You configure DNS and HTTPS, apply updates, protect SSH, back up the database and content, monitor failures and handle recovery. The steps below separate Ghost’s official requirements from sensible capacity and security decisions.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Official Ghost production stack

Ghost Foundation’s current supported production stack is deliberately specific. The combination below is the path covered by its installation and hosting documentation.

Component Supported production choice Why it matters
Operating system Ubuntu 24 Ghost’s current officially supported server operating system.
Runtime Node.js 22 LTS Runs the Ghost application and its command-line tooling.
Database MySQL 8.0 Default production database for a self-hosted publication.
Web server NGINX Accepts public HTTP/HTTPS traffic and proxies it to Ghost.
Process manager Systemd Keeps the Ghost service running and starts it at boot.
Privileges Dedicated non-root user for Ghost commands Limits the damage a compromised application or mistaken command can cause.
Memory At least 1 GB Ghost Foundation’s documented minimum for the supported stack.

Other Linux distributions, databases or web servers may work, but Ghost does not present them as officially supported or as the broadly adopted deployment path. If you need predictable upgrades and support, stay with the listed versions instead of assembling an untested combination.

How much RAM does a Ghost blog need?

1 GB is the documented minimum

Ghost’s hosting guidance says a server must have “at least 1GB memory.” That is a floor for running the supported stack; it is not a workload guarantee. Your real usage depends on traffic, concurrent administration, image processing, imports, integrations, logging and the other daemons installed on the machine.

2 GB is a sensible small-site starting point

DigitalOcean’s official Ghost marketplace image is built and tested on a 2 GB, 1-vCPU droplet. That size is notable because the image is not running Ghost alone: it includes MySQL, NGINX, Postfix, fail2ban, UFW and the operating system. The first installation, database creation and upgrades also need temporary headroom. For a new production blog with co-located services, 2 GB gives you a more forgiving starting point than the 1 GB floor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not turn that marketplace size into a universal Ghost requirement. It is a tested image configuration, not a statement that every publication needs exactly one virtual CPU or exactly 2 GB. A busy publication should measure memory pressure, swap activity, database load and response times before resizing.

What Ghost does not specify

Ghost’s official requirements do not publish a universal CPU count, disk size, bandwidth allowance or monthly visitor limit. Select storage based on your media library, backups, logs and database growth, and select bandwidth based on the size and frequency of your pages and downloads. Those are capacity-planning decisions rather than fixed Ghost prerequisites.

Production prerequisites before installing

  • A public domain or subdomain: Decide the exact URL readers will use. Ghost’s URL should include https:// once SSL is enabled.
  • A database: MySQL is the default production database. The Ghost installer can create the database and user when the server is configured correctly.
  • DNS access: Point the chosen hostname at the VPS before requesting a certificate.
  • Administrative access: You need SSH access to the server, but Ghost commands should run as the dedicated non-root user rather than as root.
  • Open network ports: SSH must be reachable for administration; NGINX needs ports 80 and 443 for web traffic and certificate validation.

NGINX normally owns the public ports and forwards requests to Ghost’s application process. Ghost’s configuration guidance recommends SSL in production because, without it, usernames and passwords travel in plaintext.

Installing Ghost on a VPS: the production path

Ghost-CLI automates much of the supported layout. The exact package commands can change with Ubuntu and Ghost-CLI releases, so follow the current installer documentation for the command syntax; the sequence and decisions remain the same.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Provision Ubuntu 24. Choose a VPS with at least 1 GB RAM; 2 GB RAM and 1 vCPU is a practical baseline for a small site with co-located services. Log in over SSH and create or select a non-root account for Ghost administration.
  2. Harden initial access. Update the operating system, install security updates and configure a firewall. Allow SSH, HTTP and HTTPS only as required before enabling the firewall, so you do not lock yourself out.
  3. Install the supported runtime and services. Use Node.js 22 LTS, MySQL 8.0, NGINX and Systemd. Avoid silently substituting a different Node major version or database engine if you want the officially supported stack.
  4. Prepare the site directory. Create a directory owned by the Ghost user, not root. Run Ghost-CLI from that account so generated files and later updates have consistent ownership.
  5. Run the production installer. Ghost-CLI can create and configure the MySQL database and user, generate an NGINX site configuration and register a Systemd service. Provide the canonical publication URL when prompted.
  6. Enable HTTPS. Use Ghost-CLI’s SSL setup flow to request a free Let’s Encrypt certificate after DNS resolves to the VPS. Confirm that the configured URL uses https://, then test both the front end and the admin route.
  7. Complete the first-owner setup. Create the owner account, set a strong unique password and verify that mail delivery works before inviting additional staff.
  8. Test restart and recovery. Reboot the VPS, confirm that Systemd starts Ghost and NGINX, check the site over HTTPS and inspect logs for failed services. A deployment that works only until the first reboot is not production-ready.

ghost install local is a development convenience, not the production architecture. It uses SQLite and a local process manager, so do not use it as evidence that a production server can omit MySQL, NGINX or Systemd.

Security and maintenance checklist

Self-hosting turns routine operations into your responsibility. Apply these controls before announcing the site.

  • Use HTTPS everywhere. Redirect HTTP to HTTPS after the certificate is active. SSL protects administrator credentials and session traffic.
  • Consider a separate admin domain. Ghost’s hosting guidance suggests separating administration where that fits your threat model and network setup.
  • Run mysql_secure_installation. Remove unsafe MySQL defaults, review anonymous access and restrict remote database exposure.
  • Configure UFW deliberately. Permit SSH, NGINX HTTP and NGINX HTTPS; deny unsolicited services and verify the rules from a second session before closing the first.
  • Disable SSH password and root logins. Use key-based access for a named administrative account, then elevate only when a system task requires it.
  • Patch every layer. Keep Ubuntu, Node.js, MySQL, NGINX, Ghost and Ghost-CLI current. Subscribe to security notices and schedule maintenance rather than leaving updates indefinitely.
  • Back up off the VPS. Back up the MySQL database and the content directory, retain multiple restore points and periodically perform a test restore on a separate system.
  • Monitor the service. Watch disk space, memory, swap, CPU, database errors, certificate expiry and HTTP status codes. Configure alerts before an outage becomes a reader report.

Scaling a self-hosted publication

Start with observed demand rather than a theoretical visitor number. If memory is consistently exhausted, resize the VPS or move database and application roles apart. If storage is filling, clean retained logs and expand the volume before writes fail. If requests are slow, profile database and application behavior instead of assuming that adding CPU alone will fix it.

Ghost recommends placing a CDN and caching layer in front of an instance as traffic grows. A well-configured cache can serve very large request volumes without every request reaching Ghost. This is especially useful for public, mostly read-only pages while keeping authenticated admin and publishing requests routed to the origin.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ghost does not support clustering or database sharding. Do not design a multi-node Ghost cluster expecting the application to coordinate writes across nodes. Scale vertically, use caching where appropriate and keep a clear single-origin recovery plan.

Self-hosting versus managed Ghost hosting

The decision is less about whether Ghost can run on a VPS and more about who operates the surrounding system.

Decision area Self-hosted Ghost Ghost(Pro) managed hosting
Operational responsibility You patch the server, manage backups, security, monitoring and incident response. Ghost manages weekly updates, backups, security and performance.
Infrastructure control Maximum control over the operating system, network, integrations and deployment schedule. Less infrastructure control in exchange for an operated service.
Resource planning You choose VPS memory, storage and scaling strategy. Server sizing is abstracted from you.
Best fit Teams that want server control and can operate Linux production systems. People who want to publish without managing servers; Ghost’s own guidance says this is probably the better fit for them.

Managed hosting does not remove editorial configuration decisions, but it removes most of the operating-system work described above. Self-hosting is attractive when custom networking, compliance controls or infrastructure ownership outweigh the maintenance burden.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

ActivityPub and Web Analytics requirements

Ghost 6 introduced newer Social Web (ActivityPub) and Web Analytics services as separate services rather than as a single Ghost process. For self-hosters, the current Docker Compose path for these services is a preview approach. Ghost plans for Docker Compose to become the default installation approach from Ghost 7.0, but that future direction does not change the current supported production stack for the core publication.

Hosted ActivityPub has documented limits for self-hosters: a maximum of 2,000 followers, 2,000 accounts followed and 100 interactions per day. These limits apply to the hosted service described by Ghost and should not be presented as a general limit on every self-hosted Ghost page or on core publishing traffic.

Troubleshooting common requirement failures

The installer reports insufficient memory

Check available RAM and swap while the installer is running. On a 1 GB machine, MySQL, NGINX, package installation and certificate tools can compete with Ghost for memory. Stop unnecessary services, add temporary swap only as an emergency measure and move to a 2 GB plan or larger if pressure persists.

The domain opens but HTTPS cannot be issued

Verify that DNS points to the VPS, port 80 is reachable from the internet and NGINX is using the intended hostname. Correct the Ghost URL to use https:// after the certificate succeeds, then reload NGINX and test in a private browser session.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ghost works locally but not after reboot

Check the Systemd unit status and logs, confirm that the Ghost directory is owned by the non-root Ghost user and verify that MySQL starts before Ghost attempts its database connection. Re-run the production configuration rather than switching to ghost install local.

Updates fail because files are owned by root

Mixed ownership usually means a Ghost command was run with sudo from the wrong account. Restore ownership to the dedicated Ghost user, use the supported CLI workflow and take a backup before retrying the update.

Choosing a starting specification

  • Development or evaluation: Use ghost install local with SQLite; keep it separate from your public production site.
  • Small production publication: Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, Systemd and at least 2 GB RAM provide practical headroom for co-located services.
  • Strict minimum experiment: The supported floor is 1 GB RAM, but plan for careful monitoring and limited headroom during installs, imports and upgrades.
  • Growing audience: Keep a single supported origin, add CDN and caching, monitor resource use and resize based on measurements rather than adopting an unsupported cluster.
  • No server operations capacity: Choose Ghost(Pro) so updates, backups, security and performance operations are handled by the managed platform.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.