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.
- 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;
- 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;
So, before starting, you should have docker and docker-compose installed and running in your environment.
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.