--- # yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/main/schema/compose-spec.json services: ghost: # Do not alter this without updating the Tinybird Sync container as well image: ghost:${GHOST_VERSION:-6-alpine} restart: always expose: - "127.0.0.1:${GHOST_PORT:-2368}:2368" # This is required to import current config when migrating env_file: - .env environment: NODE_ENV: production url: https://${DOMAIN:?DOMAIN environment variable is required} admin__url: ${ADMIN_DOMAIN:+https://${ADMIN_DOMAIN}} database__client: mysql database__connection__host: db database__connection__user: ${DATABASE_USER:-ghost} database__connection__password: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required} database__connection__database: ghost tinybird__tracker__endpoint: https://${DOMAIN:?DOMAIN environment variable is required}/.ghost/analytics/api/v1/page_hit tinybird__adminToken: ${TINYBIRD_ADMIN_TOKEN:-} tinybird__workspaceId: ${TINYBIRD_WORKSPACE_ID:-} tinybird__tracker__datasource: analytics_events tinybird__stats__endpoint: ${TINYBIRD_API_URL:-https://api.tinybird.co} volumes: - ${UPLOAD_LOCATION:-./data/ghost}:/var/lib/ghost/content depends_on: db: condition: service_healthy tinybird-sync: condition: service_completed_successfully required: false tinybird-deploy: condition: service_completed_successfully required: false activitypub: condition: service_started required: false db: image: mysql:8.0.42@sha256:4445b2668d41143cb50e471ee207f8822006249b6859b24f7e12479684def5d9 restart: always expose: - "3306" environment: MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD:?DATABASE_ROOT_PASSWORD environment variable is required} MYSQL_USER: ${DATABASE_USER:-ghost} MYSQL_PASSWORD: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required} MYSQL_DATABASE: ghost MYSQL_MULTIPLE_DATABASES: activitypub volumes: - ${MYSQL_DATA_LOCATION:-./data/mysql}:/var/lib/mysql - ./mysql-init:/docker-entrypoint-initdb.d healthcheck: test: mysqladmin ping -p$$MYSQL_ROOT_PASSWORD -h 127.0.0.1 interval: 1s start_period: 30s start_interval: 10s retries: 120 env_file: - .env