x-django: &django image: funkwhale-api init: true networks: - internal volumes: - ../api:/app - "${MUSIC_DIRECTORY_SERVE_PATH:-../.state/music}:/music:ro" - "../.state/plugins:/srv/funkwhale/plugins" - "../.state/staticfiles:/staticfiles" - "../.state/media:/protected/media" - "../.state/${COMPOSE_PROJECT_NAME:-funkwhale}/media:/data/media" environment: - DEBUG - FORCE - DEFAULT_FROM_EMAIL - DJANGO_SETTINGS_MODULE - DJANGO_SECRET_KEY - EXTERNAL_REQUESTS_VERIFY_SSL - "FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}" - FUNKWHALE_PROTOCOL - "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}" - DATABASE_URL - CACHE_URL - CELERY_BROKER_URL - EMAIL_CONFIG - TYPESENSE_API_KEY - "STATIC_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/static/" - "MEDIA_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/media/" - STATIC_ROOT - MEDIA_ROOT - FUNKWHALE_SPA_HTML_ROOT - LDAP_ENABLED - BROWSABLE_API_ENABLED - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}" - C_FORCE_ROOT - PYTHONDONTWRITEBYTECODE - PYTHONTRACEMALLOC services: api: <<: *django build: context: ../api dockerfile: Dockerfile.debian command: develop healthcheck: test: [ "CMD-SHELL", "curl -o /dev/null -s -w '%{http_code}' http://localhost:5000/api/v1 | grep '301' || exit 1", ] interval: 10s timeout: 5s retries: 3 start_period: 60s worker: <<: *django command: develop-worker healthcheck: test: [ "CMD-SHELL", "celery -A funkwhale_api.taskapp status | grep 'OK' || exit 1", ] interval: 10s timeout: 5s retries: 3 start_period: 30s