Ghost install refers to the process of setting up the Ghost publishing platform on a server or local environment without using the official installer or dashboard. This method is popular among developers and sysadmins who need granular control over the stack, or when deploying Ghost in containers, virtual private servers, or automated pipelines. A ghost install typically involves configuring a web server, setting up a database, managing dependencies, and ensuring the correct permissions are in place for optimal performance and security.
Why Choose a Manual Ghost Install
While Ghost offers a one-click installer, a manual ghost install provides flexibility and transparency. Users can choose their operating system, database version, and web server stack, whether it is Nginx, Apache, or Caddy. This approach is ideal for production environments where performance tuning, custom SSL setups, or specific firewall rules are required. It also helps troubleshoot issues that might be masked by automated scripts, giving full visibility into each configuration step.
Preparing the Server for Ghost
Before starting the installation, it is essential to prepare the server environment. This includes updating the package manager, installing Node.js, setting up a non-root user with sudo privileges, and configuring a firewall. For a typical ghost install, you need a Linux-based system such as Ubuntu 20.04 or 22.04, at least 1 GB of RAM, and a domain name pointing to the server. Ensuring these prerequisites reduces the risk of permission errors and service interruptions later in the process.
Key System Requirements
Operating System: Ubuntu 20.04 LTS or newer
Node.js: Version 16.x or 18.x recommended
Database: MySQL, MariaDB, or SQLite
Web Server: Nginx or Apache (optional with development mode)
Memory: Minimum 1 GB RAM for basic setups
Step-by-Step Installation Process
The ghost install process via command line begins with creating a dedicated directory for the content, usually under /var/www/ghost. Next, you download the latest Ghost CLI tool using npm, verify its integrity, and link it globally. Once the CLI is set up, running ghost install in the content directory initiates the interactive setup, where you configure URLs, set up systemd, and enable SSL through Let's Encrypt if a domain is available.
Common Commands Used
Troubleshooting Installation Issues
Even with a well-prepared system, a ghost install can encounter errors related to permissions, missing dependencies, or misconfigured DNS. Common issues include EACCESS errors during npm install, systemd service failures, or SSL certificate timeouts. Checking the logs with ghost doctor, verifying file ownership in the content directory, and ensuring port 2368 is not blocked are effective ways to resolve these problems. Patience and systematic debugging turn these hurdles into a smoother deployment.