Setting up a personal publishing platform is often the first step for writers, developers, and creators who want full control over their content. Ghost provides a modern, minimalist interface designed specifically for long-form storytelling and newsletter-style content. This guide walks through installing Ghost, from server preparation to going live with a custom domain.
Understanding Ghost Hosting Requirements
Before you install Ghost, it is important to understand the platform’s requirements. Ghost is a Node.js application, which means it runs on a JavaScript runtime environment. You can either install it directly on a Linux server or use a managed Ghost hosting provider to simplify the process. A minimum of 1 GB of RAM is recommended for basic usage, while sites expecting higher traffic should scale up resources accordingly.
The operating system of choice is typically Ubuntu 20.04 or later, although other Linux distributions are supported with minor adjustments. You will also need a static IP address and a domain name pointing to that IP. If you plan to accept payments or enforce secure logins, an SSL certificate is non-negotiable, and Let’s Encrypt offers a free and automated solution for this.
Preparing Your Server Environment
A clean server environment reduces conflicts and ensures stable performance. Start by updating the package index and upgrading existing software to patch known vulnerabilities. Install essential utilities such as curl, wget, and git, which are commonly used during the installation process.
Update and upgrade the system packages.
Create a new non-root user with sudo privileges.
Set up a firewall to limit unnecessary open ports.
Install Node.js using the nodesource repository for the latest LTS version.
Taking these initial steps makes the subsequent installation smoother and helps maintain security from the very beginning. A well-prepared server reduces the risk of permission errors and runtime failures later on.
Installing Ghost Using the CLI
Ghost offers a command-line interface (CLI) tool that automates much of the installation and configuration. Begin by installing the Ghost CLI globally using npm, which is the Node.js package manager. This tool should be installed globally to ensure it is accessible from any directory.
npm install -g ghost-cli@latest Next, create a dedicated directory for your Ghost installation, typically under /var/www . The CLI will guide you through setting up a production environment, checking system compatibility, and configuring your site URL. Following the prompts carefully ensures that file permissions and service hooks are correctly established.
Configuring Your Domain and SSL
Once the core installation is complete, configuring your domain is the next priority. Ghost uses the URL you provide during setup to generate absolute links for posts, images, and API calls. If this value is incorrect, your site may break or fail to load assets properly.
For SSL, the easiest method is to run the Ghost CLI command that automatically provisions a certificate through Let’s Encrypt. This process validates your ownership of the domain and installs the certificate without manual intervention. If you are behind a proxy or load balancer, you may need to adjust the SSL settings manually to avoid redirect loops.
Post-Installation Maintenance Tasks
After successfully installing Ghost, ongoing maintenance keeps your site secure and reliable. Regularly updating Ghost to the latest stable version ensures you receive new features and security patches. The Ghost CLI simplifies this with a simple update command that preserves your existing content and themes.
Monitor disk usage and database size as your content grows.
Schedule automated backups to protect against data loss.
Keep Node.js and system dependencies up to date.
Review user roles and permissions periodically.