app-store/apps/ghost/docker-compose.yml

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