Sayem Chowdhury
Posted on November 23, 2024
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:
- Log into your KVMPods dashboard
- Navigate to Templates
- Find the Ghost template
- Click "Deploy"
- 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:
Key features of this template:
- Health checks for MySQL
- Persistent volume storage
- Secure networking
Deployment Steps
- Log into your KVMPods dashboard
- Click "New Server"
- Select your preferred location
- Choose a plan
- Once your server is ready, go to the Apps section
- Click "Create New App"
- Paste the Docker Compose file above and set env variables
Post-Deployment Configuration
Access your Ghost admin panel at:
http://<SERVER_IP>:2368/ghost
Initial setup steps:
- Create your admin account
- Configure your blog details
- Select a theme
- Create your first post
- Set up newsletters (optional)
- 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!
Posted on November 23, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.