added healthcheck and release note

This commit is contained in:
val 2025-06-14 15:39:09 +02:00
parent 3c467307fb
commit c885189143
No known key found for this signature in database
GPG Key ID: 650507CF2C02830C
5 changed files with 46 additions and 19 deletions

View File

@ -18,6 +18,5 @@ LETS_ENCRYPT_ENV=production
#MAIL_OPTIONS_AUTH_USER=smtpuser@example.com #MAIL_OPTIONS_AUTH_USER=smtpuser@example.com
## Matrix-Synapse-Redirection ## Matrix-Synapse-Redirection
# If you want to use Ghost on a TLD which you want to use as matrix server name as well
# COMPOSE_FILE="$COMPOSE_FILE:compose.matrix.yml" # COMPOSE_FILE="$COMPOSE_FILE:compose.matrix.yml"
# MATRIX_DOMAIN=matrix-synapse.example.com # MATRIX_DOMAIN=matrix-synapse.example.com

View File

@ -1,17 +1,17 @@
# ghost # ghost
Headless Node.js CMS for professional publishing Node.js CMS for professional publishing (headless possible).
<!-- metadata --> <!-- metadata -->
* **Category**: Apps * **Category**: Apps
* **Status**: * **Status**: 3, stable
* **Image**: * **Image**: [`ghost`](https://hub.docker.com/_/ghost), 4, upstream
* **Healthcheck**: * **Healthcheck**: Yes
* **Backups**: * **Backups**: Yes
* **Email**: Y * **Email**: Yes
* **Tests**: * **Tests**: No
* **SSO**: * **SSO**: N/A
<!-- endmetadata --> <!-- endmetadata -->
@ -28,3 +28,8 @@ Headless Node.js CMS for professional publishing
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra [`abra`]: https://git.coopcloud.tech/coop-cloud/abra
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik [`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik
## Further configuration
### Matrix-Synapse configuration
If you want to use Ghost on a top-level-domain which you want to use as matrix server name as well, just uncomment the respective section in `YOURAPPDOMAIN.env` and insert your `MATRIX_DOMAIN`

View File

@ -8,6 +8,7 @@ services:
database__connection__user: root database__connection__user: root
database__connection__database: ghost database__connection__database: ghost
database__connection__password_FILE: /run/secrets/db_password database__connection__password_FILE: /run/secrets/db_password
# database__connection__password_FILE: /run/secrets/db_password
url: https://$DOMAIN url: https://$DOMAIN
mail__transport: ${MAIL_TRANSPORT} mail__transport: ${MAIL_TRANSPORT}
mail__from: ${MAIL_FROM} mail__from: ${MAIL_FROM}
@ -25,8 +26,10 @@ services:
- source: ghost_entrypoint - source: ghost_entrypoint
target: /abra-entrypoint.sh target: /abra-entrypoint.sh
mode: 0555 mode: 0555
command: node current/index.js command: ["node", "current/index.js"]
entrypoint: /abra-entrypoint.sh entrypoint: /abra-entrypoint.sh
depends_on:
- db
networks: networks:
- proxy - proxy
- backend - backend
@ -48,12 +51,12 @@ services:
- "backupbot.backup=true" - "backupbot.backup=true"
- "backupbot.backup.path=/var/lib/ghost/content" - "backupbot.backup.path=/var/lib/ghost/content"
- "coop-cloud.${STACK_NAME}.version=0.1.0+5-alpine" - "coop-cloud.${STACK_NAME}.version=0.1.0+5-alpine"
# healthcheck: healthcheck:
# test: ["CMD", "curl", "-f", "http://localhost"] test: ["CMD", "wget", "--header=X-Forwarded-Proto: https", "--spider", "-q", "http://localhost:2368/ghost/api/admin/site"]
# interval: 30s interval: 30s
# timeout: 10s timeout: 10s
# retries: 10 retries: 10
# start_period: 1m start_period: 1m
db: db:
image: mysql:8.0 image: mysql:8.0
@ -68,10 +71,17 @@ services:
deploy: deploy:
labels: labels:
- "backupbot.backup=true" - "backupbot.backup=true"
- "backupbot.backup.pre-hook=mysqldump -u root -pghost ghost --tab /var/lib/mysql-files/" - "backupbot.backup.pre-hook=mysqldump -u root -p\"$$(cat /run/secrets/db_password)\" ghost --tab /var/lib/mysql-files/"
- "backupbot.backup.post-hook=rm -rf /var/lib/mysql-files/*" - "backupbot.backup.post-hook=rm -rf /var/lib/mysql-files/*"
- "backupbot.backup.path=/var/lib/mysql-files/" - "backupbot.backup.path=/var/lib/mysql-files/"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p\"$$(cat /run/secrets/db_password)\""]
interval: 30s
timeout: 10s
retries: 10
start_period: 1m
networks: networks:
proxy: proxy:
external: true external: true

View File

@ -29,4 +29,4 @@ file_env "database__connection__password"
file_env "mail__options__auth__pass" file_env "mail__options__auth__pass"
# upstream entrypoint https://github.com/docker-library/ghost/blob/master/5/alpine/Dockerfile # upstream entrypoint https://github.com/docker-library/ghost/blob/master/5/alpine/Dockerfile
/usr/local/bin/docker-entrypoint.sh "$@" exec /usr/local/bin/docker-entrypoint.sh "$@"

View File

@ -1,4 +1,14 @@
# Attention!!! # Attention!!!
There are two things you need to change manually:
1. insert secrets for mysql database and smtp
2. migrate your MySQL database from 5.7 to 8.0
## 1. insert secret
The recipe now includes two secrets: `db_password` and `smtp_password` make sure you change them.
To not break somthing, just insert `ghost` as `db_password` because this was the hard coded password before.
If desired to change the db-password, I recommend to do try it after migrating as I run in some difficult to debug problems doing this.
## 2. migrate your MySQL database from 5.7 to 8.0
Recipe updates MySQL version from 5.7 to 8.0 as it is the only supported version of ghost: Recipe updates MySQL version from 5.7 to 8.0 as it is the only supported version of ghost:
https://ghost.org/docs/faq/supported-databases/ https://ghost.org/docs/faq/supported-databases/
@ -38,4 +48,7 @@ abra app run ghost.dev.local-it.cloud db -t -- mysql -u root -pghost ghost -B --
echo "SET foreign_key_checks=1;" >> ~/.abra/backups/"$APP_URL"_alter_table.sql echo "SET foreign_key_checks=1;" >> ~/.abra/backups/"$APP_URL"_alter_table.sql
# run these alter_table.sql commands # run these alter_table.sql commands
abra app run "$APP_URL" db -t -- mysql -u root -pghost ghost < ~/.abra/backups/"$APP_URL"_alter_table.sql abra app run "$APP_URL" db -t -- mysql -u root -pghost ghost < ~/.abra/backups/"$APP_URL"_alter_table.sql