Host Ghost on VeloxaHost
Ghost is a Node.js publishing platform for blogs and newsletters, with a block editor, member sign-ups and paid subscriptions built in. Independent writers and small publications self-host it to own their site and subscriber list without paying a hosted platform's fees.
The one-click install sets up Nginx, MySQL, Node.js and Ghost-CLI on Ubuntu 24.04 and installs Ghost into /var/www/ghost with a MySQL database, running as a systemd service on port 2368. Set your real URL afterwards with ghost config url.
Install it yourself
This follows Ghost's official Ubuntu guide, where Ghost-CLI sets up Nginx, TLS and systemd for you.
- Ghost-CLI does not run as root. Create a sudo user, but do not name it
ghost, which Ghost-CLI reserves.adduser deploy && usermod -aG sudo deploy && su - deploy - Install Nginx and MySQL, then create a database and user for Ghost.
sudo apt install -y nginx mysql-server sudo mysql -e "CREATE DATABASE ghost_prod; CREATE USER 'ghost_db'@'localhost' IDENTIFIED BY 'DB_PASSWORD'; \ GRANT ALL ON ghost_prod.* TO 'ghost_db'@'localhost'; FLUSH PRIVILEGES;" - Install Node.js 22 from NodeSource. Ghost 6 supports Node.js 22 only.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - sudo apt install -y nodejs - Install Ghost-CLI.
sudo npm install ghost-cli@latest -g - Create the site directory, owned by your user.
sudo mkdir -p /var/www/mysite && sudo chown deploy:deploy /var/www/mysite && sudo chmod 775 /var/www/mysite - Point your domain at an address where ports 80 and 443 reach the server (a dedicated IPv4 address, a paid add-on with limited availability; IPv6 is not available in US East yet), then run the installer. It asks for the URL and the MySQL details, and offers to configure Nginx, a Let's Encrypt certificate and systemd.
cd /var/www/mysite && ghost install - Open
https://your-domain/ghostto create the owner account.
FAQ
What license is Ghost under?
Ghost is free software released under the MIT license. The Ghost Foundation also runs Ghost(Pro), a paid hosted service, but the self-hosted software is the same code and free to use.
Can I send newsletters from a self-hosted Ghost?
Yes, but bulk newsletter email goes through Mailgun, which Ghost documents as the only supported bulk email provider. Login links and other transactional email use Ghost's standard mail settings with an SMTP provider. VeloxaHost blocks outbound TCP port 25 by default, so use your provider's port 587 or 465.
Where is my content stored?
Posts, members and settings are in the MySQL database. Uploaded images, themes and other files are in the content folder of the install, /var/www/ghost/content on the one-click install. Back up both, for example with a scheduled VeloxaHost backup of the whole server.
How do I update Ghost?
Run ghost update as your install user from the site directory. Ghost-CLI checks the environment, installs the new version and restarts the site. Take a snapshot in the VeloxaHost console first so you can roll back.
How much memory does Ghost need?
Ghost's own guide asks for at least 1 GB of memory, which is also the app's minimum here. The recommended 2 GB leaves room for MySQL, Nginx and updates, and on a container you can raise memory from the console without a restart.
Which VeloxaHost size fits Ghost?
The recommended 1 vCPU and 2 GB of RAM is a Veloxa 1: 1 vCPU, 2 GB RAM and 50 GB of disk for $10 a month, billed at $0.02 an hour and capped at the monthly price.