services:
  couchdb-1.local:
    image: public.ecr.aws/medic/cht-couchdb:5.1.0-10357-fix-debug-logs-v2
    volumes:
      - ${DB1_DATA:-./srv1}:/opt/couchdb/data
      - cht-credentials:/opt/couchdb/etc/local.d/
    environment:
      - "COUCHDB_USER=${COUCHDB_USER:-admin}"
      - "COUCHDB_PASSWORD=${COUCHDB_PASSWORD:?COUCHDB_PASSWORD must be set}"
      - "COUCHDB_SECRET=${COUCHDB_SECRET}"
      - "COUCHDB_UUID=${COUCHDB_UUID}"
      - "SVC_NAME=${SVC1_NAME:-couchdb-1.local}"
      - "CLUSTER_PEER_IPS=${CLUSTER_PEER_IPS:-couchdb-2.local,couchdb-3.local}"
      - "COUCHDB_LOG_LEVEL=${COUCHDB_LOG_LEVEL:-info}"
    logging:
      driver: "local"
      options:
        max-size: "${LOG_MAX_SIZE:-50m}"
        max-file: "${LOG_MAX_FILES:-20}"
    restart: always
    depends_on:
      - nouveau
    networks:
      cht-net:

  couchdb-2.local:
    image: public.ecr.aws/medic/cht-couchdb:5.1.0-10357-fix-debug-logs-v2
    volumes:
      - ${DB2_DATA:-./srv2}:/opt/couchdb/data
    environment:
      - "COUCHDB_USER=${COUCHDB_USER:-admin}"
      - "COUCHDB_PASSWORD=${COUCHDB_PASSWORD:?COUCHDB_PASSWORD must be set}"
      - "COUCHDB_SECRET=${COUCHDB_SECRET}"
      - "COUCHDB_UUID=${COUCHDB_UUID}"
      - "SVC_NAME=${SVC2_NAME:-couchdb-2.local}"
      - "COUCHDB_LOG_LEVEL=${COUCHDB_LOG_LEVEL:-info}"
      - "COUCHDB_SYNC_ADMINS_NODE=${COUCHDB_SYNC_ADMINS_NODE:-couchdb-1.local}"
    logging:
      driver: "local"
      options:
        max-size: "${LOG_MAX_SIZE:-50m}"
        max-file: "${LOG_MAX_FILES:-20}"
    restart: always
    depends_on:
      - nouveau
    networks:
      cht-net:

  couchdb-3.local:
    image: public.ecr.aws/medic/cht-couchdb:5.1.0-10357-fix-debug-logs-v2
    volumes:
      - ${DB3_DATA:-./srv3}:/opt/couchdb/data
    environment:
      - "COUCHDB_USER=${COUCHDB_USER:-admin}"
      - "COUCHDB_PASSWORD=${COUCHDB_PASSWORD:?COUCHDB_PASSWORD must be set}"
      - "COUCHDB_SECRET=${COUCHDB_SECRET}"
      - "COUCHDB_UUID=${COUCHDB_UUID}"
      - "SVC_NAME=${SVC3_NAME:-couchdb-3.local}"
      - "COUCHDB_LOG_LEVEL=${COUCHDB_LOG_LEVEL:-info}"
      - "COUCHDB_SYNC_ADMINS_NODE=${COUCHDB_SYNC_ADMINS_NODE:-couchdb-1.local}"
    logging:
      driver: "local"
      options:
        max-size: "${LOG_MAX_SIZE:-50m}"
        max-file: "${LOG_MAX_FILES:-20}"
    restart: always
    depends_on:
      - nouveau
    networks:
      cht-net:

  nouveau:
    image: public.ecr.aws/medic/cht-couchdb-nouveau:5.1.0-10357-fix-debug-logs-v2
    volumes:
      - ${DB1_DATA:-./srv1}/nouveau:/data/nouveau
    restart: always
    logging:
      driver: "local"
      options:
        max-size: "${LOG_MAX_SIZE:-50m}"
        max-file: "${LOG_MAX_FILES:-20}"
    networks:
      cht-net:

  healthcheck:
      image: public.ecr.aws/medic/cht-haproxy-healthcheck:5.1.0-10357-fix-debug-logs-v2
      restart: always
      environment:
        - "COUCHDB_SERVERS=${COUCHDB_SERVERS:-couchdb-1.local,couchdb-2.local,couchdb-3.local}"
        - "COUCHDB_USER=${COUCHDB_USER:-admin}"
        - "COUCHDB_PASSWORD=${COUCHDB_PASSWORD}"
      logging:
        driver: "local"
        options:
          max-size: "${LOG_MAX_SIZE:-50m}"
          max-file: "${LOG_MAX_FILES:-20}"
      networks:
        - cht-net

volumes:
  cht-credentials:

networks:
  cht-net:
     name: ${CHT_NETWORK:-cht-net}
