networks: internal: web: external: true x-django-depends-on: &django-depends-on postgres: condition: service_healthy redis: condition: service_healthy x-dns: &dns dns: 172.17.0.1 dns_search: funkwhale.test services: app: extends: file: ./compose/app.vue.yml service: app api: extends: file: ./compose/app.django.yml service: api depends_on: <<: *django-depends-on app: condition: service_healthy <<: *dns worker: extends: file: ./compose/app.django.yml service: worker depends_on: <<: *django-depends-on <<: *dns web: extends: file: ./compose/app.nginx.yml service: web depends_on: app: condition: service_healthy api: condition: service_healthy networks: - web - internal labels: - 'traefik.enable=true' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.middlewares=redirect-scheme@file' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true' - 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}' postgres: image: 'postgres:${POSTGRES_VERSION:-15}-alpine' environment: - POSTGRES_HOST_AUTH_METHOD command: postgres ${POSTGRES_ARGS:-} volumes: - './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data' networks: - internal healthcheck: test: ['CMD-SHELL', 'pg_isready -U postgres'] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine volumes: - './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data' networks: - internal healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 10s timeout: 5s retries: 3 typesense: extends: file: ./compose/app.typesense.yml service: typesense networks: - internal