As an open-source digital publishing platform Ghost functions through Node.js by using its built-in content management system capabilities. The platform combines speed and minimalistic design with lightweight to serve the needs of bloggers, media professionals, and businesses seeking high-performing and clear aesthetics. From this Article, you will get the necessary knowledge to implement Ghost on Ubuntu 24.04 while learning about SEO management, SSL and backup configurations, and additional aspects.
Ghost achieves its main success through its fast performance together with easy operation. Its Node.js development allows Ghost to process concurrent users more efficiently than many CMS platforms built with PHP. The tool delivers an ideal writing platform to publishers who receive built-in SEO tools alongside Markdown accessibility. The platform’s main focus consists of both content output and system performance while keeping all additional functionality out of its way, only purposed to upgrade the system aspects.
Make sure your environment includes:
Upgrading your server’s systems lowers usage problems while making your network function better and safer. Enter this command to start updating your computer system now.
sudo apt update && sudo apt upgrade -y
This ensures you benefit from the latest patches and bug fixes, minimizing vulnerabilities while enhancing overall reliability.
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo apt install -y curl unzip nginx

Ghost requires an active LTS version of Node.js.
Obtain the official NodeSource setup script with
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

This command configures Ubuntu’s package manager to recognize Node.js 18.x. Next, we will install Node.js by running
sudo apt install -y nodejs

node -v
npm -v

Install Ghost CLI globally using npm:
Sudo npm install -g ghost-cli

The utility system streamlines Ghost installation procedures and update and management operations through its self-executed setup instructions. After installing, confirm by executing:
ghost version

Establishing a separate user account for Ghost improves security by isolating its processes.
Run
Sudo adduser ghost user

sudo usermod -aG sudo ghost user

su - ghost user

mkdir -p /var/www/ghost
cd /var/www/ghost

Ensure correct permissions:
sudo chown -R ghostuser:ghostuser /var/www/ghost
ghost install
Within your dedicated Ghost user account. Through the Ghost CLI users receive guidance to set their website domain URL while selecting MySQL or SQLite as a database solution and integrating Nginx and enabling automatic systemd service management. Ghost becomes accessible to visitors after completing these operations.
Ghost CLI will guide you through the following:
The config file is located at:
/var/www/ghost/config.production.json
Modify these fields:
Apply changes with:
ghost restart

If Ghost CLI didn’t configure Nginx, do it manually.
Create a new config:
sudo nano /etc/nginx/sites-available/yourdomain.com.conf
Paste:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
Location / {
proxy_pass http://127.0.0.1:2368;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Enable and reload:
Sudo ln -s /etc/nginx/sites-available/yourdomain.com.conf
/etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot will configure redirection from HTTP to HTTPS and handle renewal.
Check Ghost’s service name:
systemctl status ghost_yourdomain-com

Use standard systemd commands:
Sudo systemctl start ghost_yourdomain-com
sudo systemctl stop ghost_yourdomain-com
sudo systemctl restart ghost_yourdomain-com
sudo systemctl enable ghost_yourdomain-com
Testing Your Ghost Installation
Open your browser and go to:
https://yourdomain.com

https://yourdomain.com/ghost
Register the admin account and test publishing a post to confirm everything works.
mysqldump -u user -p database > backup.sql

Copy the DB file:
cp /var/www/ghost/content/data/ghost.db ~/ghost_backup/
cp -r /var/www/ghost/content ~/ghost_content_backup/

Restore with:
mysql -u user -p database < backup.sql

Or copy back SQLite and content directories and restart Ghost.
cd /var/www/ghost
ghost update

Backup before updating. CLI handles versioning, database migration, and restart.
Ghost provides content publishing services usable by beginner and expert users in both personal blog and professional organization contexts. The Ghost CLI allows easy Ubuntu 24.04 installation with the file configuration of nginx as a reverse proxy with SSL encryption and backup systems,s and performance optimization, making it ready for production use.
Ghost combines simplicity and performance with advanced customization potential. Whether you’re running a personal blog or scaling a high-traffic publication, Ghost delivers clean UI, SEO power, and blazing speed.
From setup to scale, the steps above ensure you’re not just hosting a site but running a robust digital publishing machine.

Vinayak Baranwal wrote this article. Use the provided link to connect with Vinayak on LinkedIn for more insightful content or collaboration opportunities.