kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
				
				
				
			
		
			
				
	
	
		
			198 wiersze
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			198 wiersze
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
version: "3"
 | 
						|
 | 
						|
services:
 | 
						|
  front:
 | 
						|
    build:
 | 
						|
      context: front
 | 
						|
      dockerfile: Dockerfile.dev
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    environment:
 | 
						|
      - "HOST=0.0.0.0"
 | 
						|
      - "VUE_PORT=${VUE_PORT-8080}"
 | 
						|
    ports:
 | 
						|
      - "${VUE_PORT-8080}"
 | 
						|
    volumes:
 | 
						|
      - "./front:/app"
 | 
						|
      - "/app/node_modules"
 | 
						|
      - "./po:/po"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    command: "yarn dev --host"
 | 
						|
 | 
						|
  postgres:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    image: postgres:${POSTGRES_VERSION-11}-alpine
 | 
						|
    environment:
 | 
						|
      - "POSTGRES_HOST_AUTH_METHOD=trust"
 | 
						|
    command: postgres ${POSTGRES_ARGS-}
 | 
						|
    volumes:
 | 
						|
      - "./data/${COMPOSE_PROJECT_NAME-node1}/postgres:/var/lib/postgresql/data"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
 | 
						|
  redis:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    image: redis:7-alpine
 | 
						|
    volumes:
 | 
						|
      - "./data/${COMPOSE_PROJECT_NAME-node1}/redis:/data"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
 | 
						|
  api:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    build:
 | 
						|
      context: ./api
 | 
						|
      dockerfile: Dockerfile
 | 
						|
      args:
 | 
						|
        install_dev_deps: 1
 | 
						|
    image: funkwhale-api
 | 
						|
    command: >
 | 
						|
      bash -c "funkwhale-manage collectstatic --no-input
 | 
						|
      && uvicorn --reload config.asgi:application --host 0.0.0.0 --port 5000  --reload-dir config/ --reload-dir=funkwhale_api/"      
 | 
						|
    volumes:
 | 
						|
      - ./api:/app
 | 
						|
      - "${MUSIC_DIRECTORY_SERVE_PATH-./data/music}:/music:ro"
 | 
						|
      - "./data/plugins:/srv/funkwhale/plugins"
 | 
						|
      - "./data/staticfiles:/staticfiles"
 | 
						|
      - "./data/media:/data/media"
 | 
						|
    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"
 | 
						|
      - "STATIC_ROOT=/staticfiles"
 | 
						|
 | 
						|
    depends_on:
 | 
						|
      - postgres
 | 
						|
      # - minio
 | 
						|
      - redis
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    cap_add:
 | 
						|
      - SYS_PTRACE
 | 
						|
    extra_hosts:
 | 
						|
      - "node1.funkwhale.test:172.17.0.1"
 | 
						|
      - "node2.funkwhale.test:172.17.0.1"
 | 
						|
      - "node3.funkwhale.test:172.17.0.1"
 | 
						|
 | 
						|
  celeryworker:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    image: funkwhale-api
 | 
						|
    depends_on:
 | 
						|
      - postgres
 | 
						|
      # - minio
 | 
						|
      - redis
 | 
						|
    command: celery -A funkwhale_api.taskapp worker -l debug -B --concurrency=${CELERYD_CONCURRENCY-0}
 | 
						|
    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_SERVE_PATH-./data/music}:/music:ro"
 | 
						|
      - "./data/plugins:/srv/funkwhale/plugins"
 | 
						|
      - "./data/media:/data/media"
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    extra_hosts:
 | 
						|
      - "node1.funkwhale.test:172.17.0.1"
 | 
						|
      - "node2.funkwhale.test:172.17.0.1"
 | 
						|
      - "node3.funkwhale.test:172.17.0.1"
 | 
						|
 | 
						|
  nginx:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    image: nginx
 | 
						|
    ports:
 | 
						|
      - "${NGINX_PORTS_MAPPING-8000:80}"
 | 
						|
    environment:
 | 
						|
      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
 | 
						|
      - "FUNKWHALE_API_HOST=${FUNKWHALE_API_HOST-api}"
 | 
						|
      - "FUNKWHALE_API_PORT=${FUNKWHALE_API_PORT-5000}"
 | 
						|
      - "FUNKWHALE_FRONT_IP=${FUNKWHALE_FRONT_IP-front}"
 | 
						|
      - "FUNKWHALE_FRONT_PORT=${VUE_PORT-8080}"
 | 
						|
      - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }"
 | 
						|
      - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
 | 
						|
    depends_on:
 | 
						|
      - api
 | 
						|
      - front
 | 
						|
    volumes:
 | 
						|
      - ./docker/nginx/conf.dev:/etc/nginx/templates/default.conf.template:ro
 | 
						|
      - "${MUSIC_DIRECTORY_SERVE_PATH-./data/music}:/music:ro"
 | 
						|
      - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro
 | 
						|
      - "./front:/frontend:ro"
 | 
						|
      - "./data/staticfiles:/staticfiles:ro"
 | 
						|
      - "./data/media:/protected/media:ro"
 | 
						|
    networks:
 | 
						|
      - federation
 | 
						|
      - internal
 | 
						|
 | 
						|
    labels:
 | 
						|
      traefik.backend: "${COMPOSE_PROJECT_NAME-node1}"
 | 
						|
      traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1},${DJANGO_ALLOWED_HOSTS}"
 | 
						|
      traefik.enable: "true"
 | 
						|
      traefik.federation.protocol: "http"
 | 
						|
      traefik.federation.port: "80"
 | 
						|
      traefik.frontend.passHostHeader: true
 | 
						|
      traefik.docker.network: federation
 | 
						|
 | 
						|
  api-docs:
 | 
						|
    image: swaggerapi/swagger-ui:v3.37.2
 | 
						|
    environment:
 | 
						|
      - "API_URL=/swagger.yml"
 | 
						|
    ports:
 | 
						|
      - "8002:8080"
 | 
						|
    volumes:
 | 
						|
      - "./docs/swagger.yml:/usr/share/nginx/html/swagger.yml"
 | 
						|
      - "./docs/api:/usr/share/nginx/html/api"
 | 
						|
 | 
						|
  typesense:
 | 
						|
    env_file:
 | 
						|
      - .env.dev
 | 
						|
      - .env
 | 
						|
    image: typesense/typesense:0.24.0
 | 
						|
    networks:
 | 
						|
      - internal
 | 
						|
    volumes:
 | 
						|
      - ./typesense/data:/data
 | 
						|
    command: --data-dir /data --enable-cors
 | 
						|
    profiles:
 | 
						|
      - typesense
 | 
						|
 | 
						|
  # minio:
 | 
						|
  #   image: minio/minio
 | 
						|
  #   command: server /data
 | 
						|
  #   volumes:
 | 
						|
  #     - "./data/${COMPOSE_PROJECT_NAME-node1}/minio:/data"
 | 
						|
  #   environment:
 | 
						|
  #     - "MINIO_ACCESS_KEY=${AWS_ACCESS_KEY_ID-access_key}"
 | 
						|
  #     - "MINIO_SECRET_KEY=${AWS_SECRET_ACCESS_KEY-secret_key}"
 | 
						|
  #     - "MINIO_HTTP_TRACE: /dev/stdout"
 | 
						|
  #   ports:
 | 
						|
  #     - "9000:9000"
 | 
						|
  #   networks:
 | 
						|
  #     - federation
 | 
						|
  #     - internal
 | 
						|
 | 
						|
networks:
 | 
						|
  internal:
 | 
						|
  federation:
 | 
						|
    name: federation
 | 
						|
    external: true
 |