This guide covers a hands-on experience setting up Ghost, a blogging platform, on an Ubuntu virtual server. This is a minimal setup without Apache or Nginx — just Node.js essentials.
Step 1: Getting Ghost Onto Your Server
Upload Ghost files via an FTP client or clone the repository directly from GitHub:
git clone https://github.com/TryGhost/Ghost.git
Step 2: Installing Ghost
Navigate to the Ghost folder and install dependencies. The --production flag minimizes server footprint by excluding dev dependencies:
cd Ghost npm install --production
Step 3: Firing Up Ghost
Launch the application in production mode:
npm start --production
Ghost typically runs at http://localhost:2368.
Networking Gotchas
Ghost binds to localhost by default, making it inaccessible from other network devices. To fix this:
- Find the server IP via
ifconfig - Edit
config.production.json - Change host from
127.0.0.1to the server's external IP (e.g.192.168.1.100) - Restart Ghost
{
"url": "http://192.168.1.100:2368",
"server": {
"port": 2368,
"host": "192.168.1.100"
}
}
Wrapping Up
Once the configuration is complete, Ghost will be accessible from other devices on the network. From here you can customize themes, set up your admin panel at /ghost, and configure the blog for production use. If running in Parallels, make sure to verify the network mode settings.