version: '3'
services:
  ambre_mux:
    image: jeancloud/mux:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_Client1Host: $NET.108
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
    volumes:
      - $SOUNDBASE_DIR/pige:/app/pige
    ports:
      - $MUX_SERVER_PORT:9000
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET$MUX
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M


  saphir_telecom_server:
    image: jeancloud/telecom-server:$OMA_DOCKER_VERSION
    env_file: .env
    ports:
      - $TELECOM_SERVER_PORT:3490
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET$TELECOM
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M

  anthracite_jukebox:
    image: jeancloud/jukebox:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
      OMA_CONFIG_Client1Host: $NET$MUX
    volumes:
      - $SOUNDBASE_DIR:/app/soundBase
      - $DATA_DIR/secours-jingle.wavM:/app/secours/secours-jingle.wavM
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET.102
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M

  azurite_jukebox_simulator:
    image: jeancloud/jukebox-simulator:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
    volumes:
      - $SOUNDBASE_DIR:/app/soundBase
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET.103
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M

    #  aventurine_transcode:
    #    image: jeancloud/transcode:$OMA_DOCKER_VERSION
    #    env_file: .env
    #    restart: unless-stopped


  agate_importer:
    image: jeancloud/baseimport:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
    volumes:
      - $SOUNDBASE_DIR:/app/soundBase
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET.104
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 500M

  amarante_webserver:
    image: jeancloud/webserver:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
      OMA_CONFIG_PigeTxtLoadFic: off
    restart: unless-stopped
    volumes:
      - $SOUNDBASE_DIR:/soundbase
    networks:
      default:
        ipv4_address: $NET$WEBSERVER
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M

  rubis_base_mg:
    image: jeancloud/base-mg:$OMA_DOCKER_VERSION
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
    restart: unless-stopped
    volumes:
      - $SOUNDBASE_DIR:/soundbase
    networks:
      default:
        ipv4_address: $NET.106
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 100M


  system_api:
    image: jeancloud/system-api:dev
    env_file: .env
    environment:
      OMA_CONFIG_TelecommandeHost: $NET$TELECOM
      UID: 33
      SOUNDBASE_PATH: /soundbase
      MOUNT: /api
      CONFIG_PATH: /config
    restart: unless-stopped
    volumes:
      - /tmp/uwsgi/$RADIO_HOST:/tmp/uwsgi
      - /var/run/docker.sock:/var/run/docker.sock
      - $SOUNDBASE_DIR:/soundbase
    networks:
      default:
        ipv4_address: $NET.107
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 500M

  transcode:
    image: savonet/liquidsoap:v2.1.4
    env_file: .env
    volumes:
      - ./icecast.liq:/transcode.liq
      - $SOUNDBASE_DIR:/soundbase
    command: /transcode.liq
    restart: unless-stopped
    networks:
      default:
        ipv4_address: $NET.108

          #radioking:
          #  image: jeancloud/liquidsoap:1.3.7
          #  env_file: .env
          #  volumes:
          #    - ./radioking.liq:/radioking.liq
          #  command: /radioking.liq
          #  restart: unless-stopped
          #  networks:
          #    default:
          #      ipv4_address: $NET.111

          #ammolite_mp3_addon:
          #  image: jeancloud/mp3addon:$OMA_DOCKER_VERSION
          #  env_file: .env
          #  environment:
          #    OMA_CONFIG_TelecommandeHost: $NET.101
          #    OMA_CONFIG_PigePrefix: /opt
          #  restart: unless-stopped
          #  volumes:
          #      - $SOUNDBASE_DIR:/app/soundbase
          #  networks:
          #    default:
          #      ipv4_address: $NET.109
          #  deploy:
          #    resources:
          #      limits:
          #        cpus: '0.05'

            #  doxy:
            #    image: qnib/doxy
            #    volumes:
            #      - /tmp/radiodemo.oma-radio.fr/doxy:/tmp/doxy
            #      - /data/radiodemo.oma-radio.fr/doxy.pattern:/etc/doxy.pattern
            #      - /var/run/docker.sock:/var/run/docker.sock
            #    environment:
            #      DOXY_PROXY_SOCKET: /tmp/doxy/doxy.sock

  icecast:
    image: infiniteproject/icecast
    restart: unless-stopped
    environment:
      # echo -n "source:pass" | base64
      ICECAST_SOURCE_PASSWORD: JsCabjWJUZXrrrKCaaRZma5wD4YKj5LQLXv6f
      ICECAST_ADMIN_PASSWORD: STh5LrPMvp876KPoajCPEUpehE98JPqZ6sEixSnzJ42CR2MdyPMBYfzjGpbAzajNgw8jsuLh
      ICECAST_RELAY_PASSWORD: r2LgmDocgyYh7DqhSsey8tM99wxdViTpLtyi9tcWHtokC73QnC6kQLRRb58VUy5FXYnStRsG
      ICECAST_ADMIN_USERNAME: admin
      ICECAST_ADMIN_EMAIL: contact@oma-radio.fr
      ICECAST_LOCATION: Rhône-Alpes
      TZ: Europe/Paris
    healthcheck:
      test: "wget http://localhost:8000/direct.ogg -O - -t 1 -T 3 -S --spider 2>&1 | grep '200 OK' && wget http://localhost:8000/direct.mp3 -O - -t 1 -T 3 -S --spider 2>&1 | grep '200 OK'"
      interval: 5m0s
      timeout: 10s
      retries: 3
      start_period: 1m0s
    networks:
      default:
        ipv4_address: $NET$ICECAST

networks:
  default:
    ipam:
      config:
        - subnet: $NET.0/24