Skip to content

Install Ghost blogging platform on Ubuntu

Guide to deploying Ghost (open-source blogging CMS) on Ubuntu with Nginx reverse proxy, MySQL, and Let’s Encrypt TLS via Ghost-CLI.

Source

Stack

ComponentRole
GhostNode.js CMS with Markdown editor
Ghost-CLIInstall, update, nginx/systemd/SSL setup
NginxReverse proxy
MySQLDatabase
Node.js LTSGhost runtime
Let’s EncryptTLS (via Ghost-CLI prompts)

Prerequisites

  • Non-root sudo user (example: ghostexample)
  • Valid domain with DNS pointing at the server
  • sudo apt update && sudo apt upgrade
  • sudo apt install build-essential

Install flow (summary)

  1. Nginx: sudo apt install nginx
  2. MySQL: sudo apt install mysql-server, set root password in mysql
  3. Node.js: NodeSource LTS setup + sudo apt install nodejs
  4. Ghost-CLI: sudo npm install -g ghost-cli@latest
  5. App directory: sudo mkdir -p /var/www/ghost, chown to deploy user, cd /var/www/ghost
  6. Install: ghost install — answer URL, DB, nginx, SSL, systemd prompts
  7. Finish setup: browse https://your-domain.com/ghost and create admin account

Maintenance

bash
ghost ls
ghost update
ghost doctor

Replace example.com in the Linode guide with your domain. Newer Ubuntu versions may need adjusted Node LTS lines — cross-check Ghost docs.

Curated technical notes — open source on GitHub