---
title: How to Self-Host Ghost on a VPS in Under 15 Minutes
description: Install Ghost 6 on a VPS and run your own publication. Native newsletters, Stripe paid tiers, and free SSL, replacing the $29/mo Ghost(Pro) Publisher plan.
image: https://blog.ishosting.com/hubfs/blog/ghost-on-vps/ghost-on-vps.png
---

<https://ishosting.com/en>

[VPS](https://ishosting.com/en/vps) [Dedicated hosting](https://ishosting.com/en/dedicated) [VPN](https://ishosting.com/en/vpn) [Storage](https://ishosting.com/en/storage) [About us](https://ishosting.com/en/about)

[Client area](https://my.ishosting.com/en/account)

[is\*hosting Blog](https://blog.ishosting.com/en)

- [News](https://blog.ishosting.com/en/tag/news)
- [VPS](https://blog.ishosting.com/en/tag/vps)
- [Hosting](https://blog.ishosting.com/en/tag/hosting)
- [Technology](https://blog.ishosting.com/en/tag/technology)
- [is\*ai](https://blog.ishosting.com/en/tag/isai)
- Other 
    - [Marketing](https://blog.ishosting.com/en/tag/marketing)
    - [Security](https://blog.ishosting.com/en/tag/security)

[News](https://blog.ishosting.com/en/tag/news)

 Categories

[Search](https://blog.ishosting.com/hs-search-results)

 Hosting Services

[About Us](https://ishosting.com/en/about)

[Client Area](https://my.ishosting.com/en/account)

[News](https://blog.ishosting.com/en/tag/news) [VPS](https://blog.ishosting.com/en/tag/vps) [Hosting](https://blog.ishosting.com/en/tag/hosting) [Technology](https://blog.ishosting.com/en/tag/technology) [is\*ai](https://blog.ishosting.com/en/tag/isai) [Marketing](https://blog.ishosting.com/en/tag/marketing) [Security](https://blog.ishosting.com/en/tag/security)

[VPS](https://ishosting.com/en/vps) [Dedicated hosting](https://ishosting.com/en/dedicated) [VPN](https://ishosting.com/en/vpn) [Storage](https://ishosting.com/en/storage)

1. [Blog](https://blog.ishosting.com/en)
2. [How to](https://blog.ishosting.com/en/tag/how-to)
3. How to Install Ghost on a VPS: Self-Hosting Guide

How to

# How to Install Ghost on a VPS: Self-Hosting Guide

Install Ghost 6 on a VPS and run your own publication. Native newsletters, Stripe paid tiers, and free SSL, replacing the $29/mo Ghost(Pro) Publisher plan.

[is\*hosting team](https://blog.ishosting.com/en/author/team-ishosting) 29 Sep 2026 8 min reading

![How to Install Ghost on a VPS: Self-Hosting Guide](https://blog.ishosting.com/hubfs/blog/ghost-on-vps/ghost-on-vps.png)

Table of Contents

- [What You Need Before Setup](https://blog.ishosting.com/en/ghost-on-vps#before-setup)
- [How to Install Ghost on a VPS \[Step-by-Step Guide\]](https://blog.ishosting.com/en/ghost-on-vps#install-ghost)
- [How to Use Ghost: Three Things to Do on Day One](https://blog.ishosting.com/en/ghost-on-vps#after-install)
- [How to Update Ghost](https://blog.ishosting.com/en/ghost-on-vps#update-ghost)
- [What You've Got Running](https://blog.ishosting.com/en/ghost-on-vps#conclusion)
- [FAQ](https://blog.ishosting.com/en/ghost-on-vps#faq)

Every month you stay on Ghost(Pro), you're paying $29 for the Publisher plan just to unlock paid subscriptions, features you already own the moment you self-host.

This guide covers a real install of [Ghost](https://github.com/tryghost/ghost) 6.49.0 on is\*hosting's Start VPS plan, from a fresh Ubuntu 24.04 server to a running publication in under 15 minutes.

## What You Need Before Setup

Before touching the server, point a DNS A-record from your domain to your server's IP address. Ghost-CLI configures Let's Encrypt SSL during install, and Let's Encrypt requires DNS to be resolving before it can issue a certificate. Propagation typically takes 5 to 30 minutes; start this first.

**Hard requirements:**

- A registered domain name with an A-record pointing to your VPS IP
- Ubuntu 24.04 selected at checkout (Ghost-CLI requires Ubuntu and will not run on other distributions)
- A non-root sudo user (Ghost-CLI refuses to run as root)
- Node.js v22 LTS (installed during setup below)
- MySQL 8 (installed during setup below)

###### VPS

Run Ghost on your own server with full root access, a dedicated IPv4 address, and weekly backups included.

[Choose VPS](https://ishosting.com/en/vps)

Every is\*hosting VPS plan includes one dedicated [IPv4 address](https://blog.ishosting.com/en/multiple-ipv4-addresses-on-one-vps) by default, pre-selected at checkout and not removable. Ghost requires a public IP for SSL certificate issuance and inbound web traffic. That requirement is satisfied out of the box on any plan you choose.

| **Use case** | **RAM** | **CPU** | **is\*hosting plan** |
| --- | --- | --- | --- |
| Personal blog, small newsletter | 2 GB | 2 CPU | Start VPS ($10.19/mo) |
| Active publication, 1,000+ subscribers | 4 GB | 3 CPU | Medium VPS ($21.24/mo) |
| High-traffic site, heavy email volume | 8 GB | 4 CPU | Premium VPS ($31.99/mo) |

The Start plan is the right baseline. Ghost, MySQL, and Nginx combined consume around 1.2 GB at rest on a fresh install, verified from this install session. The Start plan's 2 GB gives Ghost enough headroom for normal traffic without constant memory pressure. As your subscriber list and media library grow, is\*hosting lets you add RAM or storage without reprovisioning the server.

All plans include weekly VPS backups. The [is\*hosting VPS product page](https://ishosting.com/en/vps) has current pricing and plan details.

At checkout, select **Ubuntu** as your operating system, then choose **v. 24** from the version dropdown.

**One important note for the Start plan:** SMTP ports are blocked by default on Lite and Start plans, which means outbound email sending is disabled until you contact is\*hosting support to have it enabled. Ghost relies on an external SMTP provider (Mailgun or similar) for newsletter delivery, so raise a support ticket after provisioning before you configure email. A KYC check may be required.

## How to Install Ghost on a VPS \[Step-by-Step Guide\]

![How to Install Ghost on a VPS \[Step-by-Step Guide\]](https://blog.ishosting.com/hs-fs/hubfs/blog/ghost-on-vps/setup-en.png?width=1536&height=496&name=setup-en.png)

### Step 1 — Create a Non-Root User

Ghost-CLI refuses to run as root. Log in as root and create a sudo user. Do not use ghost as the username, as it conflicts with the system user Ghost-CLI creates during setup:

```
adduser ghostadmin
usermod -aG sudo ghostadmin
```

Follow the prompts to set a password. You'll use this password for sudo commands throughout the install.

### Step 2 — Install Dependencies

Switch to your new user and install Nginx, MySQL, and the system packages needed for Node.js:

```
su - ghostadmin
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y nginx mysql-server ca-certificates curl gnupg
```

Open the firewall for web traffic:

```
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
```

Nginx Full opens both port 80 (HTTP) and port 443 (HTTPS). Ghost's Node.js process on port 2368 stays bound to localhost and does not need a firewall rule. Nginx proxies public traffic to it internally.

MySQL 8 on Ubuntu 24.04 defaults to socket-based authentication for the root user, which Ghost cannot use. Switch it to password authentication:

```
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_secure_password'; FLUSH PRIVILEGES;"
```

Replace your\_secure\_password with a strong password. You will need it during the Ghost install wizard.

### Step 3 — Install Node.js 22

Ghost 6.x requires Node.js v22 LTS exclusively. Install it via the NodeSource repository:

```
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update && sudo apt-get install -y nodejs
```

Confirm the version:

```
node --version
```

This install returned v22.23.1. Any v22.x release is valid.

### Step 4 — Install Ghost-CLI

Switch back to root and install the Ghost command-line tool globally:

```
exit
npm install ghost-cli@latest -g
```

Confirm it installed:

```
ghost --version
```

Output from this install:

```
Ghost-CLI version: 1.29.3
```

Switch back to your non-root user for the rest of the install:

```
su - ghostadmin
```

### Step 5 — Create the Install Directory and Run Ghost Install

Ghost must be installed in /var/www/ with correct ownership. Create the directory and hand it to your user:

```
sudo mkdir -p /var/www/ghost
sudo chown ghostadmin:ghostadmin /var/www/ghost
sudo chmod 775 /var/www/ghost
cd /var/www/ghost
ghost install
```

Ghost-CLI opens with a version check and environment scan:

```
✔ Checking for latest Ghost version
✔ Checking system Node.js version - found v22.23.1
✔ Checking current folder permissions
✔ Checking memory availability
✔ Checking free space
✔ Checking pnpm installation - found corepack v0.34.6
✔ Setting up install directory
✔ Downloading and installing Ghost v6.49.0
✔ Finishing install process
```

Then the configuration wizard runs. Answer each prompt:

```
? Enter your blog URL: https://yourdomain.com
? Enter your MySQL hostname: 127.0.0.1
? Enter your MySQL username: root
? Enter your MySQL password: [your_secure_password]
? Enter your Ghost database name: ghost_prod
? Do you wish to set up a ghost MySQL user? Yes
? Do you wish to set up Nginx? Yes
? Do you wish to set up SSL? Yes
? Enter your email (for Let's Encrypt notifications): you@yourdomain.com
? Do you wish to set up Systemd? Yes
? Do you want to start Ghost? Yes
```

For the blog URL, enter the full https:// address with your domain. Ghost-CLI uses this to configure Nginx and request the SSL certificate from Let's Encrypt. Using an IP address instead of a domain causes the SSL step to be skipped with the message SSL certs cannot be generated for IP addresses, skipping. Point your DNS A-record to the server before running the install so the certificate request succeeds.

When setup completes, Ghost-CLI prints:

```
✔ Starting Ghost: yourdomain-com
------------------------------------------------------------------------------
Your admin interface is located at:
https://yourdomain.com/ghost/
```

The full install from package downloads to a running Ghost instance took 14 minutes on the Start plan.

### Step 6 — Port and Firewall Summary

Ghost-CLI manages its own Nginx configuration and systemd service. After a successful install, the port layout is:

- **Port 80 (HTTP):** Nginx, publicly exposed via ufw, redirects to HTTPS
- **Port 443 (HTTPS):** Nginx, publicly exposed via ufw, proxies to Ghost
- **Port 2368:** Ghost Node.js process, bound to 127.0.0.1 only, not reachable from outside
- **Port 3306:** MySQL, bound to localhost only, not reachable from outside

No additional firewall configuration is needed beyond the ufw allow 'Nginx Full' command in Step 2.

## How to Use Ghost: Three Things to Do on Day One

![How to Use Ghost: Three Things to Do on Day One](https://blog.ishosting.com/hs-fs/hubfs/blog/ghost-on-vps/manage-en.png?width=1536&height=492&name=manage-en.png)

### Create Your Admin Account

Navigate to https://yourdomain.com/ghost/ in your browser. Ghost displays its first-run screen:

*Welcome to Ghost.  
All over the world, people have started 3,000,000+ incredible sites with Ghost.  
Today, we're starting yours.*

![ghost-on-ishosting-1](https://blog.ishosting.com/hs-fs/hubfs/blog/ghost-on-vps/ghost-on-ishosting-1.png?width=354&height=400&name=ghost-on-ishosting-1.png)

Fill in your site title, full name, email address, and a password of at least 10 characters, then click **Create account & start publishing**.

### Publish Your First Post

The Ghost editor opens from the left sidebar under **Posts**. Click **New post**, write in the card-based editor, and use the settings panel on the right to set a featured image, excerpt, and publication date. Click **Publish** when ready.

![ghost-on-ishosting-2](https://blog.ishosting.com/hs-fs/hubfs/blog/ghost-on-vps/ghost-on-ishosting-2.png?width=810&height=400&name=ghost-on-ishosting-2.png)

### Configure Email and Memberships

Go to **Settings** and then **Newsletters** under the Membership section in the left sidebar. Ghost has a dedicated Mailgun section at the bottom of that page: the Mailgun API is used for bulk email newsletter delivery, and the status will show "Mailgun is not set up" until you configure it.

![ghost-on-ishosting-3](https://blog.ishosting.com/hs-fs/hubfs/blog/ghost-on-vps/ghost-on-ishosting-3.png?width=611&height=600&name=ghost-on-ishosting-3.png)

Click **Edit** next to Mailgun and enter your Mailgun API key and domain. Mailgun has a free tier covering up to 3,000 emails per month.

If you're on the Start plan, confirm with is\*hosting support that SMTP ports have been unblocked on your server before testing email delivery. Outbound SMTP is disabled by default on Lite and Start plans and requires a support request to enable.

Under **Membership → Tiers**, enable paid tiers and connect your Stripe account to start accepting subscriptions. Ghost takes 0% of revenue; your only transaction cost is Stripe's standard processing fee.

## How to Update Ghost

is\*hosting includes free weekly VPS backups on all plans. Before any Ghost update, run a targeted application backup as well. It is faster to restore from than a full server snapshot if something goes wrong during a version migration.

Update Ghost-CLI first, then run the Ghost backup command, then update:

```
sudo npm install ghost-cli@latest -g
cd /var/www/ghost
ghost backup
ghost update
```

ghost backup creates a dated archive in /var/www/ghost/ containing your content directory, database export, and configuration files. Store a copy off the server before proceeding with the update.

To roll back a failed update:

```
ghost update --rollback
```

Check your current Ghost version at any time with ghost --version.

###### Additional Storage

Keep Ghost backups off your main server: extra secure storage for archives, media, and database exports.

[WATCH PLANS](https://ishosting.com/en/storage)

## What You've Got Running

The Start plan (2 CPU / 2 GB RAM / 30 GB SSD / $10.19/mo) handled this install without issue. Ghost 6.49.0 with MySQL 8.0.46 and Nginx 1.24.0 consumed 1.9 GB of disk and settled at 219 MB of RAM for the Ghost process alone, with 1.2 GB total system memory in use at rest. The install completed in 14 minutes from a clean Ubuntu 24.04 server.

What you have at the end: a production Ghost publication with a card-based editor, native newsletter delivery, Stripe-integrated paid memberships, Let's Encrypt SSL, and a systemd service that restarts Ghost automatically on reboot. The same software Ghost(Pro) Publisher charges $29/mo to host.

For next steps, the [Linux VPS setup guide](https://blog.ishosting.com/en/how-to-set-up-linux-vps) covers SSH hardening and security basics worth applying to any production server. If you're running other self-hosted tools alongside Ghost, the [Uptime Kuma guide](https://blog.ishosting.com/en/uptime-kuma-on-vps) shows how to set up uptime monitoring for your publication in under 10 minutes.

## FAQ

- ### What Ghost Is for?

  Ghost is an open-source publishing platform built specifically for content creators and newsletter operators. Where a general-purpose CMS gives you pages, plugins, and a plugin for your plugins, Ghost ships with a focused set of tools: a distraction-free editor, native membership tiers, built-in newsletter delivery, Stripe-based paid subscriptions, and a theming engine that compiles to fast static HTML.
- ### How Does Ghost Work?

  Under the hood, a production Ghost install runs four components: the Ghost Node.js process on port 2368 (bound to localhost), MySQL 8 as the database, Nginx as the reverse proxy handling ports 80 and 443, and a systemd unit keeping [Ghost](https://ghost.org/) alive across reboots. Ghost-CLI, the official installer, wires all four together and configures Let's Encrypt SSL in a single guided session.
  
  The hard constraints worth knowing before you start: Ghost requires Ubuntu 22.04 or 24.04. It will not run on CentOS, Debian, or other distributions via Ghost-CLI. Node.js v22 LTS is the only supported version; Ghost 6.x will refuse to install on Node 18 or 20. MySQL 8 is required; MariaDB is not supported for production.
  
  One feature set that is off by default on self-hosted installs: ActivityPub social web integration. Ghost-CLI installs route this through Ghost(Pro)'s hosted ActivityPub service. Fully self-hosting ActivityPub requires the Docker Compose install method instead, which is outside this guide's scope.
- ### Ghost vs. Ghost(Pro): When Self-Hosting Makes Sense?

  Ghost(Pro) currently offers three tiers: Starter at $18/mo (no paid subscriptions, one staff user, 1,000 members), Publisher at $29/mo (paid subscriptions enabled, three staff, custom themes, advanced analytics), and Business at $199/mo (10,000 members, 15 staff, priority support). All prices are annual billing. Ghost takes 0% of subscription revenue on any tier, so your only platform cost is the monthly fee.
  
  Self-hosting flips the model. You pay for the server and an external email delivery service (Mailgun or similar); Ghost takes nothing. For a publication processing $1,000/mo in subscriptions, you're replacing the $29 Publisher plan with a $10.19/mo VPS. The crossover happens immediately at launch, before you earn your first subscriber dollar.
  
  is\*hosting's 40+ global locations also matter for newsletter-heavy publications. Placing your server in Frankfurt for a European audience, or Singapore for Southeast Asian readers, cuts transactional email latency and keeps your site fast for the readers most likely to convert to paid members.
  
  The case for staying on Ghost(Pro): email deliverability is managed for you, SSL renews automatically, and you don't own the on-call. If server maintenance isn't something you want on your plate, the managed path is worth its price. For everyone else, self-hosting on a VPS is the practical choice.

###### Dedicated Server

When VPS for publishing isn't enough anymore.

[From $66.67/mo](https://ishosting.com/en/dedicated)

Table of Contents

- [What You Need Before Setup](https://blog.ishosting.com/en/ghost-on-vps#before-setup)
- [How to Install Ghost on a VPS \[Step-by-Step Guide\]](https://blog.ishosting.com/en/ghost-on-vps#install-ghost)
- [How to Use Ghost: Three Things to Do on Day One](https://blog.ishosting.com/en/ghost-on-vps#after-install)
- [How to Update Ghost](https://blog.ishosting.com/en/ghost-on-vps#update-ghost)
- [What You've Got Running](https://blog.ishosting.com/en/ghost-on-vps#conclusion)
- [FAQ](https://blog.ishosting.com/en/ghost-on-vps#faq)

<http://www.facebook.com/share.php?u=https%3A%2F%2Fblog.ishosting.com%2Fen%2Fghost-on-vps%3Futm_medium%3Dsocial%26utm_source%3Dfacebook> <https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Fblog.ishosting.com%2Fen%2Fghost-on-vps%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&url=https%3A%2F%2Fblog.ishosting.com%2Fen%2Fghost-on-vps%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&source=tweetbutton&text=> <http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.ishosting.com%2Fen%2Fghost-on-vps%3Futm_medium%3Dsocial%26utm_source%3Dlinkedin> <http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fblog.ishosting.com%2Fen%2Fghost-on-vps%3Futm_medium%3Dsocial%26utm_source%3Dpinterest&media=https%3A%2F%2F25913237.fs1.hubspotusercontent-eu1.net%2Fhubfs%2F25913237%2Fblog%2Fghost-on-vps%2Fghost-on-vps.png&description=Install%20Ghost%206%20on%20a%20VPS%20and%20run%20your%20own%20publication.%20Native%20newsletters,%20Stripe%20paid%20tiers,%20and%20free%20SSL,%20replacing%20the%20$29/mo%20Ghost(Pro)%20Publisher%20plan.>

## Related articles

## Subscribe to Newsletter

The latest news, profitable discounts, and informative articles - subscribe to the is\*hosting blog and be the first to receive a useful newsletter.

- **Services**
  
  Services

    - [Virtual Private Servers](https://ishosting.com/en/vps)
    - [Dedicated Servers](https://ishosting.com/en/dedicated)
    - [Storage](https://ishosting.com/en/storage)
    - [VPN](https://ishosting.com/en/vpn)
    - [Special Offers](https://ishosting.com/en/special-offers)
- ---
- **Company**
  
  Company

    - [About Us](https://ishosting.com/en/about)
    - [Data Centers](https://ishosting.com/en/datacenters)
    - [Blog](https://blog.ishosting.com/en)
    - [Contacts](https://ishosting.com/en/about#offices)
- ---
- **Information**
  
  Information

    - [Knowledge Base](https://help.ishosting.com/en)
    - [Support](https://ishosting.com/en/support)
    - [Payments Methods](https://ishosting.com/en/payment-methods)
- ---
- **Account**
  
  Account

    - [Create Account](https://my.ishosting.com/en/register)

---

<https://ishosting.com> © 2026

 WEBRAIN OÜ, Harju maakond, Tallinn, Kesklinna linnaosa, Endla tn 4, 10142

<https://www.facebook.com/ishostingcom> <https://twitter.com/ishostingcom> <https://www.instagram.com/is.hosting> <https://www.linkedin.com/company/is-hosting> <https://www.youtube.com/@ishosting> <https://www.pinterest.com/ishostingcom>

- [![](https://blog.ishosting.com/hs-fs/hubfs/raw_assets/public/ishosting-theme/images/rating-sm.png?width=328&height=70&name=rating-sm.png) ![](https://blog.ishosting.com/hs-fs/hubfs/raw_assets/public/ishosting-theme/images/rating.png?width=421&height=70&name=rating.png)](https://hostadvice.com/hosting-company/ishosting-reviews/#main-info)

---

- [Terms of Use](https://ishosting.com/en/terms-of-use)
- [Privacy Policy](https://ishosting.com/en/privacy-policy)
- [KYC Policy](https://ishosting.com/en/kyc-policy)
- [SLA](https://ishosting.com/en/service-level-agreement)
- [AUP](https://ishosting.com/en/acceptable-use-policy)
- en
  
    - [en](https://blog.ishosting.com/en)
    - [ru](https://blog.ishosting.com/ru/ghost-on-vps)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "abstract" : "Install Ghost 6 on a VPS and run your own publication. Native newsletters, Stripe paid tiers, and free SSL, replacing the $29/mo Ghost(Pro) Publisher plan.",
  "alternativeHeadline" : "How to Self-Host Ghost on a VPS in Under 15 Minutes",
  "articleSection" : "How to",
  "author" : {
    "@type" : "Organization",
    "name" : "is*hosting team",
    "sameAs" : [ "https://www.linkedin.com/company/is-hosting", "https://twitter.com/ishostingcom", "https://www.instagram.com/is.hosting" ],
    "url" : "https://blog.ishosting.com/en/author/team-ishosting"
  },
  "dateModified" : "2026-09-29T04:00:00.000Z",
  "datePublished" : "2026-09-29T04:00:00.000Z",
  "description" : "Install Ghost 6 on a VPS and run your own publication. Native newsletters, Stripe paid tiers, and free SSL, replacing the $29/mo Ghost(Pro) Publisher plan.",
  "headline" : "How to Install Ghost on a VPS: Self-Hosting Guide",
  "image" : [ {
    "@type" : "ImageObject",
    "height" : 1348,
    "name" : "How to Install Ghost on a VPS: Self-Hosting Guide",
    "url" : "https://25913237.fs1.hubspotusercontent-eu1.net/hubfs/25913237/blog/ghost-on-vps/ghost-on-vps.png",
    "width" : 2396
  } ],
  "inLanguage" : "en",
  "mainEntityOfPage" : {
    "@id" : "https://blog.ishosting.com/en/ghost-on-vps",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "address" : [ {
      "@type" : "PostalAddress",
      "addressCountry" : "EE",
      "addressLocality" : "Tallinn",
      "addressRegion" : "Harju maakond",
      "postalCode" : "10120",
      "streetAddress" : "Kesklinna linnaosa, Tuukri tn 19-315"
    }, {
      "@type" : "PostalAddress",
      "addressCountry" : "GB",
      "addressLocality" : "London",
      "addressRegion" : "England",
      "postalCode" : "W1W 7LT",
      "streetAddress" : "85 Great Portland Street, First Floor"
    } ],
    "description" : "is*hosting is an IaaS provider since 2005. We provide VPS, VPN, dedicated servers and data storage to help you achieve your biggest dreams.",
    "email" : "sales@ishosting.com",
    "foundingDate" : "2005",
    "legalName" : "WEBRAIN OÜ",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 26,
      "url" : "https://help.ishosting.com/hubfs/logo-ishosting.png",
      "width" : 138
    },
    "name" : "is*hosting"
  },
  "thumbnailUrl" : "https://25913237.fs1.hubspotusercontent-eu1.net/hubfs/25913237/blog/ghost-on-vps/ghost-on-vps.png",
  "timeRequired" : "PT8M",
  "url" : "https://blog.ishosting.com/en/ghost-on-vps",
  "wordCount" : 2688
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://blog.ishosting.com/en",
    "name" : "Blog",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://blog.ishosting.com/en/tag/how-to",
    "name" : "How to",
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : "https://blog.ishosting.com/en/ghost-on-vps",
    "name" : "How to Install Ghost on a VPS: Self-Hosting Guide",
    "position" : 3
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "is*hosting team",
    "url" : "https://blog.ishosting.com/en/author/team-ishosting"
  },
  "dateModified" : "2026-09-29T04:00:00.454Z",
  "datePublished" : "2026-09-29T04:00:00.000Z",
  "headline" : "How to Self-Host Ghost on a VPS in Under 15 Minutes",
  "image" : [ "https://blog.ishosting.com/hubfs/blog/ghost-on-vps/ghost-on-vps.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.ishosting.com/en/ghost-on-vps",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.ishosting.com/hubfs/logo-ishosting.png"
    },
    "name" : "WEBRAIN OÜ"
  }
}
```