DEV Community

Sayem Chowdhury
Sayem Chowdhury

Posted on

Deploy Your Ghost Blog in Minutes with KVMPods

Want to start a professional blog without the hassle of complex infrastructure? Let's deploy Ghost - an open source publishing platform - using KVMPods pre-made template or your own Docker Compose configuration.

Why Ghost?

Ghost is a modern publishing platform that offers:

  • Clean, minimalist design
  • Built-in SEO tools
  • Native newsletter system
  • Member subscriptions
  • Custom themes
  • Markdown support

Option 1: Quick Deploy with KVMPods Template

The fastest way to get started is using this template:

  1. Log into your KVMPods dashboard
  2. Navigate to Templates
  3. Find the Ghost template
  4. Click "Deploy"
  5. Follow the setup wizard

Option 2: Custom Deployment

If you prefer to customize your setup, here's production-ready Docker Compose template:

services:
  ghost:
    image: ghost:5-alpine
    container_name: ghost
    restart: unless-stopped
    ports:
      - "2368:2368"
    environment:
      url: ${GHOST_URL}
      database__client: mysql
      database__connection__host: mysql
      database__connection__user: ${MYSQL_USER}
      database__connection__password: ${MYSQL_PASSWORD}
      database__connection__database: ${MYSQL_DATABASE}
    volumes:
      - ./ghost/content:/var/lib/ghost/content
    depends_on:
      mysql:
        condition: service_healthy
    networks:
      - ghost-network

  mysql:
    image: mysql:8.0
    container_name: ghost-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - ./mysql/data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 30s
      timeout: 5s
      retries: 3
    networks:
      - ghost-network

networks:
  ghost-network:
Enter fullscreen mode Exit fullscreen mode

Key features of this template:

  • Health checks for MySQL
  • Persistent volume storage
  • Secure networking

Deployment Steps

  1. Log into your KVMPods dashboard
  2. Click "New Server"
  3. Select your preferred location
  4. Choose a plan
  5. Once your server is ready, go to the Apps section
  6. Click "Create New App"
  7. Paste the Docker Compose file above and set env variables

Post-Deployment Configuration

Access your Ghost admin panel at:

http://<SERVER_IP>:2368/ghost
Enter fullscreen mode Exit fullscreen mode

Initial setup steps:

  1. Create your admin account
  2. Configure your blog details
  3. Select a theme
  4. Create your first post
  5. Set up newsletters (optional)
  6. Configure memberships (optional)

Cost Optimization

KVMPods offers exceptional value:

  • Plans start at just €10/month
  • Host multiple apps on a single server
  • All plans include:
    • Dedicated VM resources
    • NVMe storage
    • Automated backups (charges applicable)
    • Technical support

💡 Pro Tip: Maximize your server's value by hosting multiple applications. One of our customers runs 6 different apps on a single server, bringing their per-app cost down to just €1.66!

Top comments (0)