Skip to content
Open console

Ghost

Ghost is an open-source publishing platform for blogs, newsletters, and membership sites. It pairs a fast editor and built-in email delivery with a clean, theme-driven front end.

ComponentVersion
Ghost6.51.0
Node.js22.x
MySQL8.0
nginxLatest
Ubuntu24.04 LTS
ResourceMinimumRecommended
vCPU12
RAM2 GB4 GB
Storage20 GB40 GB

The storage figure is your root disk size. Choose it on the OS Disk Offering step when you create the instance. You pay for it per GB, separate from the plan.

You can optionally set these when deploying Ghost from the marketplace. Leave GHOST_DB_PASSWORD blank to have a secure random value generated automatically.

VariableDescription
GHOST_URLFull site URL, for example https://blog.example.com
GHOST_DB_PASSWORDPassword for the MySQL ghost database user

If GHOST_URL is not set, the VM serves a placeholder page and leaves Ghost unconfigured until you provide a domain.

ssh ubuntu@<your-vm-ip>

On the first boot, a setup script creates the MySQL database, configures Ghost for your GHOST_URL, writes the nginx virtual host, and starts the site as a systemd service. This takes 1-2 minutes. Track progress:

journalctl -u ghost-first-boot.service -f

The login message (MOTD) confirms when Ghost is ready.

Open the admin area in a browser and create the first administrator account:

https://your-domain.com/ghost

The generated database credentials are written to a root-only file:

sudo cat /etc/ghost/credentials.txt

TLS is not configured automatically, because it requires your domain’s DNS to point at the VM first. Once that resolves, provision a free Let’s Encrypt certificate:

cd /var/www/ghost
ghost setup ssl

Ghost runs as a per-site systemd service named ghost_<hostname> (for example ghost_blog-example-com). Manage it from the install directory:

# Show the running instance and its service name
cd /var/www/ghost && ghost ls
# Restart, stop, and start
ghost restart
ghost stop
ghost start

Install directory: /var/www/ghost. Content (themes, images, and data) lives under /var/www/ghost/content.

Ports 80 and 443 are open on the VM’s network interface. UFW is enabled and allows SSH (port 22), HTTP (80), and HTTPS (443).

For production use, complete the Let’s Encrypt step above so the site is served over HTTPS, and restrict SSH access to known IP ranges.

Ask the ZCP docs

Type a question and pick an assistant. The assistant opens in a new tab and reads this page and the full ZCP documentation, so its answer comes from our docs.

Example questions

Ask with

Your question goes to the assistant you pick, under its own terms.