2 min read

Why Ghost might be your Blogging Platform?

Why Ghost might be your Blogging Platform?
Ghost is a powerful app for new-media creators...

Ghost is awesome! There are many reasons to choose Ghost as your blog platform. That is the word from a long-term user. When I started, the version was 0.6.x. Everything I needed was there.

I love to write posts at Ghost. The platform is designed to be very fluid and productive, it's easy to format, insert an image, set up a script, and most important "You don't need plugins to work and waste time fixing".  Keep your focus on writing and sharing your message.

At this moment, Ghost released version 5.x with MySQL 8.0 as a new database option. In a development environment is a fare and acceptable. You can use Docker, Podman, Vagrant, Kubernetes, or any tool you like to prepare your stack.

However, if you have plans or use static content, maybe SQLite should fit perfectly for you instead of MySQL. That’s just my two cents.

Pros

  • A lightweight is a simple option as database and runs so easy;
  • Serverless, your database works in a single file and doesn't require a server, so useful for backup and restores;
  • Performance, for lightweight way, is faster;

Cons

  • There is no way to remote access to fix something wrong;
  • Scaling, isn't suitable for large apps, just a single database file, and there is no redundancy;
  • Storage, there are size limitations;

Preparing Stack

So, before starting, you should have docker and docker-compose installed and running in your environment.

Docker install instructions
  • docker-compose.yml
version: '3.8'

services:

  ghost:
    image: ghost:5.16.2-alpine
    restart: unless-stopped
    networks:
      - ghost
    ports:
      - 8080:2369
    volumes:
      - ./database:/database
      - ./content/data:/var/lib/ghost/content/data
      - ./content/images:/var/lib/ghost/content/images
      - ./content/settings:/var/lib/ghost/content/settings
      - ./theme/casper:/var/lib/ghost/content/themes/casper
    environment:
      database__client: sqlite3
      database__connection__filename: /database/ghost.db
      database__useNullAsDefault: true
      server__port: 2369
      url: http://localhost:2369
      NODE_ENV: development

networks:
  ghost:

Copy content and create the docker-compose file, type command to startup container.

docker-compose up -d

Well Done! Ghost is running at port 8080, don't forget to set up the blog first, http://localhost:8080/ghost.

After that, you can check it out http://localhost:8080.