x-django: &django image: funkwhale-api volumes: - ../api:/app - ../.env:/app/.env - "${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" depends_on: postgres: condition: service_healthy redis: condition: service_healthy networks: - internal services: api: <<: *django build: context: ../api dockerfile: Dockerfile.debian healthcheck: test: [ "CMD-SHELL", 'docker compose logs api | grep -q "Uvicorn running on" || exit 0', ] interval: 3s timeout: 5s retries: 3 command: > sh -c " funkwhale-manage migrate && funkwhale-manage collectstatic --no-input && uvicorn --reload config.asgi:application --host 0.0.0.0 --port 5000 --reload-dir config/ --reload-dir funkwhale_api/ " celeryworker: <<: *django command: > sh -c ' pip install watchdog[watchmedo] && watchmedo auto-restart --patterns="*.py" --recursive -- celery -A funkwhale_api.taskapp worker -l debug -B --concurrency=${CELERYD_CONCURRENCY} ' depends_on: api: condition: service_healthy