networks:
  nw-letto:
    external: true

# Der Name bestimmt das Projekt und sollte bei jeder yml-Datei unterschiedlich sein - er kann mit -p bei docker-compose überschrieben werden
name: letto-main

services:

  main:
    image: lettohub/letto-main:stable
    restart: always
    networks:
      - nw-letto
    deploy:
      resources:
        limits:
          memory: "${MAIN_MEMORY_LIMIT:-1G}"
    hostname: letto-main
    container_name: letto-main

    volumes:
      - ${VOLUME_PUBLIC:-/opt/letto/docker/public}:/opt/letto/public
      - ${VOLUME_IMAGES:-/opt/letto/docker/storage/images}:/opt/letto/images
      - ${VOLUME_PLUGINS:-/opt/letto/docker/storage/plugins}:/opt/letto/plugins
      - ${VOLUME_PHOTOS:-/opt/letto/docker/storage/photos}:/opt/letto/photos
      - ${VOLUME_PROJEKTE:-/opt/letto/docker/storage/projekte}:/opt/letto/projekte
      - ${VOLUME_PRINT:-/opt/letto/docker/storage/print}:/opt/letto/print
      - ${VOLUME_EXPORT:-/opt/letto/docker/storage/export}:/opt/letto/export
      - ${VOLUME_LOG:-/opt/letto/docker/storage/log}/main:/opt/letto/log
      - ${VOLUME_PREVIEW:-/opt/letto/docker/storage/images/preview}:/opt/letto/preview

    environment:
      - TZ=${TIMEZONE:-Europe/Berlin}
      - letto_local_privatkey=${LETTO_LOCAL_PRIVATE_KEY:-}
      - letto_local_publickey=${LETTO_LOCAL_PUBLIC_KEY:-}
      - memory=${MAIN_MEMORY:-500M}
      - UNHEALTHY_RETRIES=${MAIN_UNHEALTHY_RETRIES:-${UNHEALTHY_RETRIES:-20}}
      - letto_servername=${SERVER_NAME}
      - jwt_secret=${JWT_SECRET:-YWJj}
      - server_secret=${SERVER_SECRET:-YWJj}
      - letto_jwt_secret=${JWT_SECRET:-YWJj}
      - letto_jwt_expiration=${JWT_EXPIRATION_MS:-600000}
      - letto_jwt_refresh_time=${JWT_REFRESH_TIME_MS:-300000}
      - letto_server_secret=${SERVER_SECRET:-YWJj}
      - letto_pathImages=/opt/letto/images
      - letto_webPathImages=/images
      - letto_pathImagesPhotos=/opt/letto/photos
      - letto_webPathImagesPhotos=/images/photos
      - letto_pathImagesPlugins=/opt/letto/plugins
      - letto_webPathImagesPlugins=/images/plugins
      - letto_pathProjekte=/opt/letto/projekte
      - letto_webPathProjekte=/projekte
      - letto_public_js=/opt/letto/public/js
      - letto_user_user_password=${SERVICE_USER_PASSWORD}
      - letto_user_gast_password=${SERVICE_GAST_PASSWORD}
      - letto_user_admin_password=${SERVICE_ADMIN_PASSWORD}
      - letto_edit_uri=${LETTO_EDIT_URI:-http://letto-edit.nw-letto:8103}
      - letto_main_uri=${LETTO_MAIN_URI:-http://letto-main.nw-letto:8080/main}
      - letto_lti_uri=${LETTO_LTI_URI:-http://letto-lti.nw-letto:8090}
      - letto_image_uri=${LETTO_IMAGE_URI:-http://letto-image.nw-letto:8091}
      - letto_math_uri=${LETTO_MATH_URI:-http://letto-math.nw-letto:8092}
      - letto_demo_uri=${LETTO_DEMO_URI:-http://letto-demo.nw-letto:8093}
      - letto_mail_uri=${LETTO_MAIL_URI:-http://letto-mail.nw-letto:8094}
      - letto_login_uri=${LETTO_LOGIN_URI:-http://letto-login.nw-letto:8095}
      - letto_setup_uri=${LETTO_SETUP_URI:-http://letto-setup.nw-letto:8096}
      - letto_print_uri=${LETTO_PRINT_URI:-http://letto-print.nw-letto:8098}
      - letto_export_uri=${LETTO_EXPORT_URI:-http://letto-export.nw-letto:8099}
      - letto_beurteilung_uri=${LETTO_BEURTEILUNG_URI:-http://letto-beurteilung.nw-letto:8100}
      - letto_test_uri=${LETTO_TEST_URI:-http://letto-test.nw-letto:8101}
      - letto_question_uri=${LETTO_QUESTION_URI:-http://letto-question.nw-letto:8102}
      - letto_plugin_uri=${LETTO_PLUGIN_URI:-http://letto-plugin.nw-letto:8200}
      - letto_pluginsourcecode_uri=${LETTO_PLUGINSOURCECODE_URI:-http://letto-pluginsourcecode.nw-letto:8204}
      - letto_lehrplan_uri=${LETTO_LEHRPLAN_EXTERN_URI:-https://lehrplan.letto.at}
      - letto_main_export_questionservice_intern=${LETTO_MAIN_EXPORT_QUESTIONSERVICE_INTERN}
      - letto_main_export_questionservice_uri=${LETTO_MAIN_EXPORT_QUESTIONSERVICE_URI}
      - letto_useAngular=${USEANGULAR:-true}
      - letto_app_uri=${ANGULAR_URI:-https://${SERVER_NAME}/app}
      - letto_saveQuestionAsync=${SAVE_QUESTION_ASYNC:-false}
      - CATALINA_OPTS=${JAVA_OPTS_MAIN:--Xms100m -Xmx${MAIN_MEMORY:-500m}}
      - REDIS_PASSWORD=${REDIS_PASSWORD:-${MYSQL_ROOT_PASSWORD}}
      - REDIS_DEFAULT_DATABASE=${LOGIN_REDIS_DEFAULT_DATABASE:-1}
      - MONGO_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD:-${MYSQL_ROOT_PASSWORD}}
      - MONGO_DEFAULT_DATABASE=${QUESTION_MONGO_DEFAULT_DATABASE:-question}
      - debug=${DEBUG_MAIN:-${DEBUG:-false}}
    ports:
    #  - "8180:8080"
      - "${DEBUG_PORT_MAIN:-4180}:5080"
