Why Ghost might be your Blogging Platform?
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.
Time for feedback!