version: '3'
services:
  plantuml-server:
    image: linkease/drawio-plantuml-server:2022121901
    expose:
      - "8080"
    networks:
      - drawionet
    volumes:
      - fonts_volume:/usr/share/fonts/drawio
  image-export:
    image: linkease/drawio-image-export:2022121901
    expose:
      - "8000"
    networks:
      - drawionet
    volumes:
      - fonts_volume:/usr/share/fonts/drawio
    environment:
      - DRAWIO_SERVER_URL=${DRAWIO_BASE_URL}
  drawio:
    image: jgraph/drawio
    ports:
      - "PORT_VAR:8080"
    links:
      - plantuml-server:plantuml-server
      - image-export:image-export
    depends_on:
      - plantuml-server
      - image-export
    networks:
      - drawionet
    environment:
      - DRAWIO_SELF_CONTAINED=1
      - PLANTUML_URL=http://plantuml-server:8080/
      - EXPORT_URL=http://image-export:8000/
      - DRAWIO_BASE_URL=${DRAWIO_BASE_URL}
      - DRAWIO_CSP_HEADER=${DRAWIO_CSP_HEADER}
      - DRAWIO_VIEWER_URL=${DRAWIO_VIEWER_URL}
      - DRAWIO_LIGHTBOX_URL=${DRAWIO_LIGHTBOX_URL}
      - DRAWIO_CONFIG=${DRAWIO_CONFIG}
      - DRAWIO_GOOGLE_CLIENT_ID=${DRAWIO_GOOGLE_CLIENT_ID}
      - DRAWIO_GOOGLE_APP_ID=${DRAWIO_GOOGLE_APP_ID}
      - DRAWIO_GOOGLE_CLIENT_SECRET=${DRAWIO_GOOGLE_CLIENT_SECRET}
      - DRAWIO_GOOGLE_VIEWER_CLIENT_ID=${DRAWIO_GOOGLE_VIEWER_CLIENT_ID}
      - DRAWIO_GOOGLE_VIEWER_APP_ID=${DRAWIO_GOOGLE_VIEWER_APP_ID}
      - DRAWIO_GOOGLE_VIEWER_CLIENT_SECRET=${DRAWIO_GOOGLE_VIEWER_CLIENT_SECRET}
      - DRAWIO_MSGRAPH_CLIENT_ID=${DRAWIO_MSGRAPH_CLIENT_ID}
      - DRAWIO_MSGRAPH_CLIENT_SECRET=${DRAWIO_MSGRAPH_CLIENT_SECRET}
      - DRAWIO_MSGRAPH_TENANT_ID=${DRAWIO_MSGRAPH_TENANT_ID}
      - DRAWIO_GITLAB_ID=${DRAWIO_GITLAB_ID}
      - DRAWIO_GITLAB_SECRET=${DRAWIO_GITLAB_SECRET}
      - DRAWIO_GITLAB_URL=${DRAWIO_GITLAB_URL}
      - DRAWIO_CLOUD_CONVERT_APIKEY=${DRAWIO_CLOUD_CONVERT_APIKEY}
      - DRAWIO_CACHE_DOMAIN=${DRAWIO_CACHE_DOMAIN}
      - DRAWIO_MEMCACHED_ENDPOINT=${DRAWIO_MEMCACHED_ENDPOINT}
      - DRAWIO_PUSHER_MODE=2
      - DRAWIO_IOT_ENDPOINT=${DRAWIO_IOT_ENDPOINT}
      - DRAWIO_IOT_CERT_PEM=${DRAWIO_IOT_CERT_PEM}
      - DRAWIO_IOT_PRIVATE_KEY=${DRAWIO_IOT_PRIVATE_KEY}
      - DRAWIO_IOT_ROOT_CA=${DRAWIO_IOT_ROOT_CA}
      - DRAWIO_MXPUSHER_ENDPOINT=${DRAWIO_MXPUSHER_ENDPOINT}
networks:
  drawionet:

volumes:
  fonts_volume:
