68 lines
2.5 KiB
YAML
68 lines
2.5 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
ghost:
|
|
image: ghost:5.86.2
|
|
container_name: ghost
|
|
depends_on:
|
|
- ghostdb
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${APP_PORT}:2368
|
|
environment:
|
|
# see https://ghost.org/docs/config/#configuration-options
|
|
database__client: mysql
|
|
database__connection__host: ghostdb
|
|
database__connection__user: tipi
|
|
database__connection__password: ${GHOST_DATABASE_PASSWORD}
|
|
database__connection__database: ghosttipi
|
|
url: ${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
|
mail__transport: SMTP
|
|
mail__options__service: ${GHOST_MAIL_SERVICE}
|
|
mail__options__host: ${GHOST_MAIL_HOST}
|
|
mail__options__port: ${GHOST_MAIL_PORT}
|
|
mail__options__auth__user: ${GHOST_MAIL_USER}
|
|
mail__options__auth__pass: ${GHOST_MAIL_PASSWORD}
|
|
volumes:
|
|
- ${APP_DATA_DIR}/content:/var/lib/ghost/content
|
|
networks:
|
|
- tipi_main_network
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.ghost-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.ghost.loadbalancer.server.port: 2368
|
|
# Web
|
|
traefik.http.routers.ghost-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.ghost-insecure.entrypoints: web
|
|
traefik.http.routers.ghost-insecure.service: ghost
|
|
traefik.http.routers.ghost-insecure.middlewares: ghost-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.ghost.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.ghost.entrypoints: websecure
|
|
traefik.http.routers.ghost.service: ghost
|
|
traefik.http.routers.ghost.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.ghost-local-insecure.rule: Host(`ghost.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.ghost-local-insecure.entrypoints: web
|
|
traefik.http.routers.ghost-local-insecure.service: ghost
|
|
traefik.http.routers.ghost-local-insecure.middlewares: ghost-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.ghost-local.rule: Host(`ghost.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.ghost-local.entrypoints: websecure
|
|
traefik.http.routers.ghost-local.service: ghost
|
|
traefik.http.routers.ghost-local.tls: true
|
|
|
|
ghostdb:
|
|
container_name: ghostdb
|
|
image: mariadb:latest
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${GHOST_DATABASE_PASSWORD}
|
|
MYSQL_USER: tipi
|
|
MYSQL_PASSWORD: ${GHOST_DATABASE_PASSWORD}
|
|
MYSQL_DATABASE: ghosttipi
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/mysql
|
|
networks:
|
|
- tipi_main_network
|