version: '3.9' services: ghost: image: ghost:5.7.0 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: http://localhost:${APP_PORT} volumes: - ${APP_DATA_DIR}/content:/var/lib/ghost/content networks: - tipi_main_network labels: traefik.enable: ${APP_EXPOSED} 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 traefik.http.services.ghost.loadbalancer.server.port: 2368 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