version: "3.4"
services:
  client_api:
    hostname: client_api
    image: matrixdotorg/dendrite-clientapi:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
      - room_server
    networks:
      - internal

  media_api:
    hostname: media_api
    image: matrixdotorg/dendrite-mediaapi:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  sync_api:
    hostname: sync_api
    image: matrixdotorg/dendrite-syncapi:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  room_server:
    hostname: room_server
    image: matrixdotorg/dendrite-roomserver:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  edu_server:
    hostname: edu_server
    image: matrixdotorg/dendrite-eduserver:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  federation_api:
    hostname: federation_api
    image: matrixdotorg/dendrite-federationapi:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  federation_sender:
    hostname: federation_sender
    image: matrixdotorg/dendrite-federationsender:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal
      
  key_server:
    hostname: key_server
    image: matrixdotorg/dendrite-keyserver:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
        - internal

  signing_key_server:
    hostname: signing_key_server
    image: matrixdotorg/dendrite-signingkeyserver:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal

  user_api:
    hostname: user_api
    image: matrixdotorg/dendrite-userapi:latest
    command: [
        "--config=dendrite.yaml"
    ]
    volumes:
        - ./config:/etc/dendrite
    networks:
        - internal

  appservice_api:
    hostname: appservice_api
    image: matrixdotorg/dendrite-appservice:latest
    command: [
      "--config=dendrite.yaml"
    ]
    volumes:
      - ./config:/etc/dendrite
    networks:
      - internal
    depends_on:
      - room_server
      - user_api

networks:
  internal:
    attachable: true