Host a Ghost blog in the cloud with Docker

Want to haunt the web with a new blog powered by Ghost? This comprehensive guide has you covered.


This is a companion discussion topic for the original entry at https://ramblingpolymath.com/2020/10/how-to-deploy-a-ghost-blog-in-the-cloud-using-docker/

Here is a code snippet for the docker-compose.yml for those that want to use a bind mount rather than docker volumes.

version: '3.2'

services:

  ghost:
    image: ghost:alpine
    restart: always
    ports:
      - 33003:2368
    environment:
    # this url value is just an example, and is likely wrong for your environment
      url: http://yourdomain.com
      admin.url: http://yourdomain.com
      #Uncomment these to enable transactional emails
      #mail__transport: SMTP
      #mail__from: [email protected]
      #mail__options__service: Gmail
      #mail__options__host: smtp.gmail.com
      #mail__options__port: 465
      #mail__options__auth__user: [email protected]
      #mail__options__auth__pass: YourAppPassword
      #mail__option__secure: "true"
    volumes:
      - /mnt/raid/ghost/content:/var/lib/ghost/content


  nginx:
    image: nginx:latest
    restart: always
    volumes:
      - /mnt/raid/nginx:/etc/nginx/
    ports:
      - 80:80
      - 443:443

Note change: /mnt/raid/ghost/content and /mnt/raid/nginx to the directories on the host system you want to use.