Skip to content
Snippets Groups Projects
dev.yml 3.88 KiB
Newer Older
    build: front
    env_file:
      - .env.dev
      - .env
Eliot Berriot's avatar
Eliot Berriot committed
      - "VUE_PORT=${VUE_PORT-8080}"
      - "./front:/app"
      - "/app/node_modules"
      - "./po:/po"
    env_file:
      - .env.dev
      - .env
    image: postgres:${POSTGRES_VERSION-11}
Eliot Berriot's avatar
Eliot Berriot committed
    command: postgres -c log_min_duration_statement=0
    volumes:
      - "./data/${COMPOSE_PROJECT_NAME-node1}/postgres:/var/lib/postgresql/data"
    networks:
      - internal
    env_file:
      - .env.dev
      - .env
    volumes:
      - "./data/${COMPOSE_PROJECT_NAME-node1}/redis:/data"
    networks:
      - internal
    env_file:
      - .env.dev
      - .env
      dockerfile: Dockerfile
      args:
        install_dev_deps: 1
    entrypoint: compose/django/dev-entrypoint.sh
    command: python /app/manage.py runserver 0.0.0.0:${FUNKWHALE_API_PORT-5000}
    volumes:
      - ./api:/app
      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
      - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
      - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
      - "FUNKWHALE_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
      - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
      - "DATABASE_URL=postgresql://postgres@postgres/postgres"
      - "CACHE_URL=redis://redis:6379/0"
    env_file:
      - .env.dev
      - .env
    build: *backend
    links:
      - postgres
      - redis
    command: celery -A funkwhale_api.taskapp worker -l debug -B
    environment:
      - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
      - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
      - "FUNKWHALE_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}"
      - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
      - "DATABASE_URL=postgresql://postgres@postgres/postgres"
      - "CACHE_URL=redis://redis:6379/0"
    volumes:
      - ./api:/app
      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
    env_file:
      - .env.dev
      - .env
      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
      - "FUNKWHALE_API_IP=${FUNKHALE_API_IP-api}"
      - "FUNKWHALE_API_PORT=${FUNKWHALE_API_PORT-5000}"
      - "FUNKWHALE_FRONT_IP=${FUNKHALE_FRONT_IP-front}"
      - "FUNKWHALE_FRONT_PORT=${VUE_PORT-8080}"
      - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }"
      - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
      - ./docker/nginx/conf.dev:/etc/nginx/nginx.conf.template:ro
      - ./docker/nginx/entrypoint.sh:/entrypoint.sh:ro
      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
      - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro
      - "${MEDIA_ROOT-./api/funkwhale_api/media}:/protected/media:ro"

    labels:
      traefik.backend: "${COMPOSE_PROJECT_NAME-node1}"
      traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1}"
      traefik.enable: "true"
      traefik.federation.protocol: "http"
      traefik.federation.port: "80"
      traefik.frontend.passHostHeader: true
      traefik.docker.network: federation

  docs:
    build: docs
    command: python serve.py
    volumes:
      - ".:/app/"
    ports:
Eliot Berriot's avatar
Eliot Berriot committed
  api-docs:
    image: swaggerapi/swagger-ui
    environment:
      - "API_URL=/swagger.yml"
    ports:
Eliot Berriot's avatar
Eliot Berriot committed
    volumes:
      - "./docs/swagger.yml:/usr/share/nginx/html/swagger.yml"
  federation:
    external:
      name: federation