networks: internal: web: external: true x-django: &django depends_on: postgres: condition: service_healthy redis: condition: service_healthy 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 <<: *django worker: extends: file: ./compose/app.django.yml service: worker <<: *django nginx: extends: file: ./compose/app.nginx.yml service: nginx 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}-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