version: '2'

services:

  esn:
    image: linagora/esn:latest
    container_name: esn
    ports:
     - "8080:8080"
    volumes:
      - ${ESN_PATH}/docker/config:/var/www/docker/config:ro
    env_file:
      - ../config/oauth.env
    environment:
      - DOCKER_IP=localhost
      - PROVISION=${PROVISION}
      - CONFIG_DIR=/var/www/docker/config
      - MONGO_HOST=mongo
      - MONGO_PORT=27017
      - MONGO_DBNAME=esn_docker
      - MONGO_TIMEOUT=100000
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - AMQP_HOST=rabbitmq
      - AMQP_PORT=5672
      - AMQP_PROTOCOL=amqp
      - AMQP_USERNAME=guest
      - AMQP_PASSWORD=guest
      - WEB_HOST=${DOCKER_IP}
      - WEB_PORT=8080
      - DAV_SERVER_HOST=sabre
      - DAV_SERVER_PORT=80
      - ELASTICSEARCH_HOST=elasticsearch
      - ELASTICSEARCH_PORT=9200
      - ELASTICSEARCH_INIT_TIMEOUT=${ELASTICSEARCH_INIT_TIMEOUT}
      - JMAP_SERVER_HOST=${DOCKER_IP}
      - JMAP_SERVER_PORT=1080
      - MAIL_BROWSER=false
      - SMTP_HOST=${DOCKER_IP}
      - SMTP_PORT=1025
      - JAMES_WEBADMIN_HOST=${DOCKER_IP}
      - JAMES_WEBADMIN_PORT=8000

  redis:
    image: redis:latest
    ports:
      - "6379:6379"

  rabbitmq:
    image: rabbitmq:3.6.5-management
    hostname: esn-rabbit
    ports:
      - 5672:5672
      - 15672:15672

  mongo:
    image: mongo:3.2
    command: ["mongod", "--smallfiles"]
    ports:
      - "27017:27017"

  elasticsearch:
    image: elasticsearch:2.3.2
    ports:
      - "9200:9200"
    environment:
      - ELASTICSEARCH_INIT_TIMEOUT=${ELASTICSEARCH_INIT_TIMEOUT}

  sabre:
    image: linagora/esn-sabre:latest
    ports:
      - "8001:80"
    environment:
      - SABRE_MONGO_HOST=mongo
      - SABRE_MONGO_PORT=27017
      - ESN_MONGO_HOST=mongo
      - ESN_MONGO_PORT=27017
      - ESN_MONGO_DBNAME=esn_docker
      - MONGO_TIMEOUT=100000
      - ESN_HOST=esn
      - ESN_PORT=8080
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - AMQP_HOST=rabbitmq
      - AMQP_PORT=5672

  james:
    entrypoint: bash -c "java -Dlogback.configurationFile=/root/conf/logback.xml -Dworking.directory=/root/ -jar james-server.jar"
    image: linagora/james-project:latest
    container_name: esn_james
    hostname: open-paas.org
    ports:
      - "1080:80"
      - "1025:25"
      - "1110:110"
      - "1143:143"
      - "1465:465"
      - "1587:587"
      - "1993:993"
      - "8000:8000"
    volumes:
      - ${ESN_PATH}/docker/config/james:/root/conf:Z
      - ${ESN_PATH}/docker/config/jwt/public:/root/conf/jwt_publickey:Z

  james_elastic:
    image: elasticsearch:2.3.2

  cassandra:
    image: cassandra:3.11.3
    ports:
      - "9042:9042"
