Skip to content
  • Hosting and publishing
  • Linux VPS
  • Ubuntu 24.04

Self-host Ghost on a VPS

Ghost runs well on a GhostRDP Linux VPS Basic plan with 2 vCPU and 6 GB RAM in Germany or the Netherlands, from €5.99/mo.

Ghost is an open-source publishing platform for blogs, magazines and paid newsletters. This guide follows Ghost's official Ubuntu install: nginx, MySQL, Node.js and Ghost-CLI, which sets up HTTPS for your domain.

  • Clean editor

    Write posts and newsletters in Ghost's editor.

  • Members and newsletters

    Free and paid memberships built in.

  • HTTPS set up for you

    Ghost-CLI configures nginx and the certificate.

Plans for Ghost

Ghost asks for at least 1 GB of memory. Basic runs a typical publication; pick Standard for large sites or many members.

  • Linux VPS Basic

    Recommended

    €5.99/mo

    €5.09/mo billed yearly, save €10/year

    • 2 vCPU
    • 6 GB ECC RAM
    • 40 GB NVMe
    • 1 Gbps port
    Order Basic
  • Linux VPS Standard

    €12.99/mo

    €11.04/mo billed yearly, save €23/year

    • 4 vCPU
    • 8 GB ECC RAM
    • 70 GB NVMe
    • 1 Gbps port
    Order Standard
  • Linux VPS Pro

    €25.99/mo

    €22.09/mo billed yearly, save €46/year

    • 6 vCPU
    • 12 GB ECC RAM
    • 90 GB NVMe
    • 1 Gbps port
    Order Pro

What you need

  • Operating system
    Linux VPS with Ubuntu 24.04 (Ghost supports 22.04 and 24.04)
  • Minimum resources
    1 GB RAM (Ghost's minimum)
  • Domain
    A domain with an A record pointing to your server's IP

Official site: docs.ghost.org

How to install Ghost

Written for Ubuntu 24.04 from the official instructions. Run the commands as root and replace YOUR_SERVER_IP with your server's address.

  1. 1

    Connect to your server over SSH

    Use the IP address and root password from your welcome email (the server page has a Copy SSH command button). Windows 10 and 11, macOS and Linux all include an SSH client in the terminal.

    Shell
    ssh root@YOUR_SERVER_IP
  2. 2

    Update the system

    Install the latest security updates before you add anything else.

    Shell
    apt update && apt -y upgrade
  3. 3

    Create a user for Ghost

    Ghost-CLI should not run as root. Pick any name except ghost, which clashes with Ghost-CLI.

    Shell
    adduser blogadmin
    usermod -aG sudo blogadmin
  4. 4

    Install nginx and MySQL

    Ghost's guide then sets a MySQL root password so Ghost-CLI can create the database. Replace the password.

    Shell
    apt install -y nginx mysql-server
    mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'choose-a-strong-password';"
  5. 5

    Install Node.js 22

    From NodeSource, as in Ghost's guide. Check Ghost's supported Node.js versions if you read this much later.

    Shell
    apt install -y ca-certificates curl gnupg
    mkdir -p /etc/apt/keyrings
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | 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" > /etc/apt/sources.list.d/nodesource.list
    apt update && apt install -y nodejs
  6. 6

    Install Ghost-CLI and Ghost

    Switch to your new user, create the site folder and run the installer. It asks for your URL (use https://), the MySQL details and offers to set up nginx, HTTPS and systemd: answer yes.

    Shell
    npm install ghost-cli@latest -g
    su - blogadmin
    sudo mkdir -p /var/www/mysite
    sudo chown blogadmin:blogadmin /var/www/mysite
    sudo chmod 775 /var/www/mysite
    cd /var/www/mysite
    ghost install

After installing

  • Admin area
    Open https://your-domain/ghost to create the owner account.
  • Email and newsletters
    Outgoing mail ports (25, 465, 587) are blocked by default on our servers. Newsletters use Mailgun in Ghost; for other mail, unlock the ports with the mail add-on or use a provider's API.
  • Updating
    As the Ghost user, in the site folder: ghost update. Back up first with ghost backup.

Ghost questions

Which plan do I need for Ghost?

Basic for a typical blog or newsletter. Standard for large sites or many members.

Is Ghost free to self-host?

Yes, Ghost is open source under the MIT license. Ghost(Pro) is their paid hosting, which you don't need here.

Can I run Ghost in Docker instead?

Ghost also publishes Docker setups. This guide follows the official Ubuntu method with Ghost-CLI.

Do I need a domain?

Yes. Ghost-CLI sets up HTTPS for your domain, so point an A record at the server before you install.

Stuck on a step? Our team answers on live chat and in tickets.

More on GhostRDP

Run Ghost on your own server.

Online in minutes. Pay with crypto, no ID needed.