How to Self-Host Ghost on Linode (2026 Guide)
Ghost is a powerful, open-source platform designed for building websites, especially blogs. It’s lightweight, fast, and provides a great user experience. This guide will walk you through the process of self-hosting Ghost on Linode, one of the most affordable VPS providers available, starting from server setup to getting Ghost up and running.
Prerequisites
Before we dive into the installation steps, ensure you have the following:
- A Linode account
- Basic knowledge of Linux command line
- SSH client (like PuTTY or terminal)
Recommended Linode Plan
For hosting Ghost efficiently, a plan with at least 1 GB RAM is advisable, which costs around 5 EUR/month. Here’s a comparison of some of the top VPS providers for context:
| Provider | Price (EUR/USD) | RAM | Disk Space | Ideal Usage |
|---|---|---|---|---|
| Linode | 5 EUR | 1 GB | 25 GB SSD | Ghost, small apps |
| Contabo | 5.99 EUR | 4 GB | 200 GB SSD | Medium to large apps |
| Hetzner Cloud | 4.15 EUR | 2 GB | 20 GB SSD | Lightweight tasks |
| DigitalOcean | 6 USD | 1 GB | 25 GB SSD | Ghost, dev projects |
| Vultr | 6 USD | 1 GB | 25 GB SSD | Cost-effective hosting |
For more options, check our full VPS comparison.
Step 1: Create a Linode Instance
- Log in to your Linode account.
- Click on the “Create Linode” button.
- Choose a suitable OS, preferably Ubuntu 22.04 LTS, by selecting it from the “Distributions” tab.
- Select your desired plan (1 GB is fine).
- Choose a data center close to your target audience.
- Set a label (e.g., “Ghost Blog”).
- Click “Create Linode”.
Step 2: Access Your Linode via SSH
Once the instance is up and running, access your server using SSH:
ssh root@your_linode_ip
Replace your_linode_ip with the actual public IP address of your Linode.
Step 3: Configure the Server
- Update Your System:
apt update && apt upgrade -y
- Install Node.js: Ghost requires Node.js, preferably version 14 or later.
curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt install -y nodejs
- Install npm (Node Package Manager):
apt install -y npm
- Install Ghost CLI Globally:
npm install -g ghost-cli
Step 4: Create a New User
It’s advisable not to run Ghost as the root user for security reasons.
adduser ghostuser
usermod -aG sudo ghostuser
Switch to the new user:
su - ghostuser
Step 5: Install Ghost
- Create a directory for Ghost:
mkdir ~/ghost
cd ~/ghost
- Install Ghost:
ghost install
During the installation, you’ll be prompted to provide your blog URL, configure the database, and set up Nginx (a popular web server).
Step 6: Configure Nginx (if not set up automatically)
If you prefer to configure Nginx manually or the installation didn’t do it for you, here are the steps:
- Install Nginx:
sudo apt install nginx
- Create a new Nginx configuration:
sudo nano /etc/nginx/sites-available/ghost
Add the following configuration:
server {
listen 80;
server_name your_domain.com; # change to your domain
location / {
proxy_pass http://localhost:2368;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- Enable the site:
sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/
- Test Nginx configuration:
sudo nginx -t
- Restart Nginx:
sudo systemctl restart nginx
FAQs
What are the benefits of self-hosting Ghost on Linode?
Self-hosting Ghost on Linode allows you complete control over your blog’s environment. You can customize the settings, install plugins as per your needs, and ensure faster load times since you’re leveraging a VPS to manage traffic directly. Furthermore, with Linode’s competitive pricing and robust performance, it’s a reliable choice for developers and homelabbers aiming to optimize their web applications.
Do I need a domain name to run Ghost?
While you can run Ghost using the server’s IP address, having a domain name is highly recommended. A domain name gives your blog a professional appearance and makes it easier for users to find and remember your site. Services like Namecheap or GoDaddy allow you to quickly register domain names that you can easily point to your VPS.
What is the difference between Ghost and WordPress?
Ghost focuses primarily on blogging and provides a clean, minimalistic interface designed for creators. It’s more developer-friendly with a strong emphasis on performance and speed. WordPress, while extremely versatile and extensible, can be heavier and may require maintaining several plugins for optimization. Choosing between them usually depends on your specific use case and whether you prefer simplicity or extensive features.
Conclusion
Deploying Ghost on Linode provides a solid way to create and manage your blog or publication. With its user-friendly interface and powerful features, Ghost combined with Linode’s reliable infrastructure offers a great environment for self-hosting. By following the steps outlined in this guide, you can have your Ghost blog up and running efficiently. Don’t forget to explore the community resources available on r/selfhosted and awesome-selfhosted for further customizations and support.