#1 GhostCMS - Installation Docker

#1 GhostCMS - Installation Docker

What is Ghost CMS?

Ghost CMS is an advanced content management system designed specifically for the needs of bloggers and content creators. It is open-source and built on Node.js. Ghost offers a simple interface for easy content publishing while providing advanced features such as Markdown editor, tag support, dynamic pages, and customization through themes. Ghost CMS emphasizes speed and efficiency, allowing creators to focus on creating excellent content.


How complex is Ghost CMS?

Operating Ghost CMS can be considered relatively easy, especially compared to some other content management systems.
Ghost CMS may require some familiarity with the Markdown editor and basic features, but for most users, using this system is considered relatively straightforward. Much depends on individual preferences and the user's experience in working with content management systems.


WordPress vs. Ghost CMS?

WordPress is a powerful and versatile content management system, widely popular with extensive community support. Its extensive features, plugin ecosystem, and themes make it an excellent choice for various online projects. However, its complex structure can be challenging, especially for new users.

In contrast, Ghost CMS offers a more streamlined approach to content publishing. Designed for bloggers and authors, Ghost emphasizes simplicity, minimalism, and focusing on creating beautiful content. With Markdown editor, Ghost enables easy and intuitive writing, eliminating unnecessary features.

In summary, the choice between WordPress and Ghost CMS depends on your individual needs and preferences. If you're looking for a versatile tool for handling advanced projects, WordPress is a great choice. On the other hand, if simplicity and focusing on content are a priority, Ghost CMS may be an excellent solution for your website.


Installing Ghost CMS using Docker and CloudPanel

Personally, I used CloudPanel (https://www.cloudpanel.io/) and the latest version of Docker for this purpose. CloudPanel offers us a reverse proxy and SSL certificates without the need for unnecessary lines of code, it's just clickable.

To make it easier for you, if someone is not familiar with Docker, I'm including the docker-compose.yml file responsible for proper setup.

version: '3.1'

services:
ghost:
image: ghost:alpine
restart: always
ports:
- 2368:2368
environment:
database__client: mysql
database__connection__host: db
database__connection__user: root
database__connection__password: your_secret_password
database__connection__database: your_database
url: https://yourodomain.eu #spiritforge.tech
#NODE_ENV: development
volumes:
# localtime
- /etc/localtime:/etc/localtime:ro
# data
- ./ghost-data:/var/lib/ghost/content:cached
depends_on:
- db
healthcheck:
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
interval: 15s
timeout: 10s
retries: 3

db:
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: your_secret_password
volumes:
# localtime
- /etc/localtime:/etc/localtime:ro
# data
- ./mysql-data:/var/lib/mysql:cached
healthcheck:
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
interval: 15s
timeout: 10s
retries: 3

healthcheck - responsible for checking whether containers with a given service are functioning correctly.
MYSQL_ROOT_PASSWORD - the password for the root user of the database. Here, we have an isolated database, so an additional user is unnecessary for us.


🚀 Author Support:
If you find the script useful and would like to support its development, you can buy the author a coffee! ☕

Buy Me a Coffee - Support the Author