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