version: "3"

services:

{% include 'templates/docker-service-redis.yml.j2' %}

  celeryworker:
    restart: always
    image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
    env_file: .env
    command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY-0}
    environment:
      - C_FORCE_ROOT=true
    volumes:
      - "data:${MEDIA_ROOT}"
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}


  celerybeat:
    restart: always
    image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
    env_file: .env
    command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}

  api:
    restart: always
    image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
    depends_on:
    env_file: .env
    volumes:
      - "data:${MEDIA_ROOT}"
      #- "${STATIC_ROOT}:${STATIC_ROOT}"
    ports:
      - "5000"
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}

  front:
    restart: always
    image: funkwhale/front:${FUNKWHALE_VERSION:-latest}
    depends_on:
      - api
    env_file:
      - .env
    environment:
      # Override those variables in your .env file if needed
      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
    volumes:
      - "data:${MEDIA_ROOT}:ro"
      #- "${STATIC_ROOT}:${STATIC_ROOT}:ro"
    ports:
      # override those variables in your .env file if needed
      - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
{% include 'templates/docker-container-networks.yml.j2' %}

{% include 'templates/docker-compose-volumes.yml.j2' %}
  data:
  redis:

{% include 'templates/docker-compose-networks.yml.j2' %}