Back to all templates
Ghost logo

Ghost

Application512MB+ RAM

Publishing platform with MySQL database

cmsblogpublishingnewsletter

Deploy Ghost in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Ghost

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Ghost on a VPS with Server Compass

Use the Ghost template in Server Compass to deploy a self-hosted Ghost publication with MySQL on your VPS, then open the live Ghost site in a browser.

About 7 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select your VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a Ghost app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Ghost

Use the template picker search to find Ghost in the Server Compass template catalog.

Searching for Ghost in the Server Compass template picker
4
Step 4

Select the Ghost template

Choose the Ghost template. Server Compass fills the Ghost service, MySQL service, persistent volumes, database variables, and default Ghost web port.

Ghost template selected in Server Compass
5
Step 5

Review the Ghost settings

Confirm the app name and compose summary. In the pilot run, the app was named ghost-demo and used host port 2368.

Reviewing generated Ghost and MySQL services
6
Step 6

Deploy Ghost

Review the generated database name, masked MySQL root password, and host port. When the port check passes, click Deploy Now.

Reviewing Ghost database variables and host port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass prepares the project, pulls the Ghost and MySQL images, starts both containers, and verifies the service.

Server Compass deploying the Ghost template on the VPS
8
Step 8

Confirm Ghost is running

After deployment finishes, return to the Apps tab and confirm the Ghost app is marked Running with two services. The card also keeps the app URL available.

Ghost template running in the Server Compass Apps tab
9
Step 9

Open Ghost in the browser

Click Open or open the application URL in a browser. The default Ghost site confirms the deployed publication is reachable and ready for setup.

The deployed Ghost site loaded in a browser

After Ghost Opens

  • Open the Ghost admin setup path from a private browser session after deployment.
  • Create the owner account with a strong password and store it securely.
  • Add a domain and HTTPS before publishing a production newsletter or site.
  • Configure mail settings before inviting members or sending newsletters.
  • Back up both the Ghost content volume and MySQL data volume before publishing important content.

Verified Result

The Ghost app loaded successfully in a browser and displayed the default homepage with the publication hero and coming-soon post.

Ghost deployment questions

What does the Ghost template deploy?

It deploys the official Ghost Docker image, a MySQL database, persistent volumes for Ghost content and database data, and generated database credentials.

Which port did the pilot use?

The pilot used host port 2368, which matches Ghost's default web port.

Why does the first browser screen show a default Ghost homepage?

A fresh Ghost deployment starts with the public publication homepage. Seeing that page confirms the Ghost container and database are running and reachable.

Should this become a blog post?

No. The deployment guide should live on the Ghost template detail page and be linked from the reusable template deployment docs page.

CLI Deployment

Deploy Ghost Yourself

Want full control? Here's how to deploy Ghost yourself using Docker Compose.

1

Access Your VPS Terminal

Use your terminal to securely access your server. You'll need your server's IP address.

terminal
# Connect via SSH
ssh root@your-vps-ip

# Alternative with key file
ssh -i /path/to/key root@your-vps-ip

First time? Make sure Docker is installed on your VPS. Run: curl -fsSL https://get.docker.com | sh

2

Set Up the Deployment Folder

Initialize a project folder on your server.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/ghost
cd ~/apps/ghost
3

Set Up the Stack Definition

Use this Docker Compose configuration for your deployment:

docker-compose.yml
services:
  ghost:
    image: ghost:5-alpine
    ports:
      - "2368:2368"
    environment:
      - url=http://localhost:2368
      - database__client=mysql
      - database__connection__host=db
      - database__connection__user=root
      - database__connection__password=<your-db-root-password>
      - database__connection__database=ghost
    volumes:
      - ghost_data:/var/lib/ghost/content
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped

  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=<your-db-root-password>
      - MYSQL_DATABASE=ghost
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u root -p$$MYSQL_ROOT_PASSWORD || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  ghost_data:
  db_data:
Required Settings
PORTHost port to expose(default: 2368)
DB_NAMEDatabase name(default: ghost)
DB_ROOT_PASSWORDMySQL root password
4

Start the Containers

Bring up your containers in detached mode.

terminal
# Start all services
docker compose up -d

# List running containers
docker compose ps

# Watch the logs
docker compose logs -f
5

Set Up Firewall Rules

Allow the application port through your server's firewall.

terminal
# Allow the application port through firewall
sudo ufw allow 2368/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:2368
Skip the Terminal

Let Server Compass do the heavy lifting.

Skip the terminal and deploy Ghost with a visual interface. Configure everything with clicks, not commands.

  • Beautiful interface
  • One-click deploys
  • Let's Encrypt SSL
  • Zero downtime
  • Container monitoring
  • Easy rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Ghost with Server Compass, complete these steps to finish setup

1

Complete Ghost setup wizard

2

Configure site settings and theme

3

Set up HTTPS with a reverse proxy

Need help? Check out our documentation for detailed guides.

Ghost FAQ

Common questions about self-hosting Ghost

How do I deploy Ghost with Server Compass?

Simply download Server Compass, connect to your VPS, and select Ghost from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for Ghost?

Ghost requires a minimum of 512MB RAM. We recommend a VPS with at least 1024MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing Ghost data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Ghost backup and restore procedures.

How do I update Ghost to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Ghost image will be pulled and deployed with zero downtime.

Is Ghost free to self-host?

Ghost is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host Ghost?

Download Server Compass and deploy Ghost to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass