services: ############################## PROXY ######################################## opencdmp.proxy: restart: unless-stopped cpus: 1 mem_limit: 256m ports: - "${PROXY_APP_PORT}:8081" volumes: - ${CONFIG_FILES_PATH}/proxy/nginx.conf:/etc/nginx/nginx.conf - ${CONFIG_FILES_PATH}/proxy/ProxyNginx.conf:/etc/nginx/conf.d/default.conf - ${LOG_FILES_PATH}/proxy:/tmp/logs networks: - opencdmp-proxy-network ############################## OPENCDMP APP ################################# opencdmp.backend: restart: unless-stopped cpus: 1 mem_limit: 2048m environment: - PROFILE=${PROFILE} ports: - "0.0.0.0:50030:8080" volumes: - ${CONFIG_FILES_PATH}/opencdmp/backend/config:/config - ${CONFIG_FILES_PATH}/opencdmp/backend/certificates:/certificates - ${CONFIG_FILES_PATH}/opencdmp/backend/i18n:/i18n - ${CONFIG_FILES_PATH}/opencdmp/backend/material:/material - ${CONFIG_FILES_PATH}/opencdmp/backend/Semantics.json:/Semantics.json - ${STORAGE_PATH}/opencdmp/backend:/storage - ${LOG_FILES_PATH}/opencdmp/backend:/logs networks: - opencdmp-proxy-network - opencdmp-backend-network - opencdmp-plugins-network - opencdmp-elastic-shared-network - opencdmp-keycloak-shared-network - opencdmp-postgres-shared-network - opencdmp-rabbitmq-shared-network opencdmp.frontend: restart: unless-stopped cpus: 1 mem_limit: 2048m ports: - "0.0.0.0:50031:8080" volumes: - ${CONFIG_FILES_PATH}/opencdmp/frontend/config.json:/usr/share/nginx/html/assets/config/config.json - ${CONFIG_FILES_PATH}/opencdmp/frontend/nginx.conf:/etc/nginx/nginx.conf - ${CONFIG_FILES_PATH}/opencdmp/frontend/WebAppNginx.conf:/etc/nginx/conf.d/default.conf networks: - opencdmp-proxy-network opencdmp.notification: cpus: 1 mem_limit: 1024m restart: unless-stopped ports: - "0.0.0.0:50036:8080" environment: - PROFILE=${PROFILE} volumes: - ${CONFIG_FILES_PATH}/opencdmp/notification/config:/config - ${CONFIG_FILES_PATH}/opencdmp/notification/messages:/messages - ${CONFIG_FILES_PATH}/opencdmp/notification/notification_templates:/notification_templates - ${LOG_FILES_PATH}/opencdmp/notification:/logs networks: - opencdmp-proxy-network - opencdmp-backend-network - opencdmp-rabbitmq-shared-network - opencdmp-keycloak-shared-network - opencdmp-postgres-shared-network opencdmp.annotation: cpus: 1 mem_limit: 1024m restart: unless-stopped ports: - "0.0.0.0:50035:8080" environment: - PROFILE=${PROFILE} volumes: - ${CONFIG_FILES_PATH}/opencdmp/annotation/config:/config - ${CONFIG_FILES_PATH}/opencdmp/annotation/messages:/messages - ${LOG_FILES_PATH}/opencdmp/annotation:/logs networks: - opencdmp-proxy-network - opencdmp-backend-network - opencdmp-rabbitmq-shared-network - opencdmp-keycloak-shared-network - opencdmp-postgres-shared-network # # ############################## FILE-TRANSFORMER ################################# opencdmp.file.transformer.docx: restart: unless-stopped cpus: 1 mem_limit: 1024m expose: - "8080" environment: - SERVER_PORT=${SERVER_PORT} - PROFILE=${PROFILE} volumes: - ${CONFIG_FILES_PATH}/opencdmp/file-transformer-docx/config:/config - ${LOG_FILES_PATH}/opencdmp/file-transformer-docx:/logs # - ${STORAGE_PATH}/opencdmp/file-transformer-docx:/storage networks: - opencdmp-plugins-network - opencdmp-pdf-service-shared-network opencdmp.file.transformer.rdajson: restart: unless-stopped cpus: 1 mem_limit: 1024m expose: - "8080" environment: - SERVER_PORT=${SERVER_PORT} - PROFILE=${PROFILE} volumes: - ${CONFIG_FILES_PATH}/opencdmp/file-transformer-rda-json/config:/config - ${CONFIG_FILES_PATH}/opencdmp/file-transformer-rda-json/internal:/internal - ${LOG_FILES_PATH}/opencdmp/file-transformer-rda-json:/logs networks: - opencdmp-plugins-network # ############################## ZENODO ####################################### opencdmp.zenodo: restart: unless-stopped cpus: 1 mem_limit: 1024m expose: - "8080" environment: - PROFILE=${PROFILE} volumes: - ${CONFIG_FILES_PATH}/opencdmp/zenodo/config:/config - ${CONFIG_FILES_PATH}/opencdmp/zenodo/zenodo.jpg:/zenodo.jpg - ${LOG_FILES_PATH}/opencdmp/zenodo:/logs networks: - opencdmp-plugins-network - opencdmp-keycloak-shared-network ############################## POSTGRES 16 ################################# opencdmp.postgres: restart: unless-stopped mem_limit: 2048M ports: - "${POSTGRES_PORT}:5432" env_file: - ${CONFIG_FILES_PATH}/postgres/postgres.env volumes: - ${STORAGE_PATH}/postgres/data:/var/lib/postgresql/data - ${CONFIG_FILES_PATH}/postgres/opencdmp_init.sql:/docker-entrypoint-initdb.d/opencdmp_init.sql networks: - opencdmp-postgres-shared-network healthcheck: test: ["CMD-SHELL", "sh -c 'pg_isready -U postgres -d opencdmp'"] interval: 15s timeout: 60s retries: 5 ################################# ELASTICSEARCH ################################################# opencdmp.elasticsearch: restart: unless-stopped cpus: 2 mem_limit: 2048m env_file: - ${CONFIG_FILES_PATH}/elk/elk.env environment: ES_JAVA_OPTS: -Xmx1024m -Xms1024m ulimits: nproc: 65535 memlock: soft: -1 hard: -1 volumes: - ${CONFIG_FILES_PATH}/elk/elasticsearch/index_init.sh:/usr/share/elasticsearch/config/index_init.sh - ${CONFIG_FILES_PATH}/elk/elasticsearch/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:ro - ${CONFIG_FILES_PATH}/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro - ${STORAGE_PATH}/elasticsearch:/usr/share/elasticsearch/data - ${LOG_FILES_PATH}/elasticsearch:/usr/share/elasticsearch/logs expose: - "9200" - "9300" networks: - opencdmp-elastic-shared-network healthcheck: test: curl -s http://localhost:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi interval: 30s timeout: 10s retries: 5 #################################### KEYCLOAK ############################################### opencdmp.keycloak: restart: unless-stopped command: ["start-dev", "--log=console,file", "--log-file=/tmp/logs/keycloak.log", "--import-realm"] cpus: 2 mem_limit: 2048M env_file: - ${CONFIG_FILES_PATH}/keycloak/keycloak.env environment: - JAVA_OPTS_APPEND="-Djava.net.preferIPv4Stack=true" volumes: - ${LOG_FILES_PATH}/keycloak:/tmp/logs - ${CONFIG_FILES_PATH}/keycloak/user_init.sh:/tmp/user_init.sh - ${CONFIG_FILES_PATH}/keycloak/imports/opencdmp-realm.json:/opt/keycloak/data/import/opencdmp-realm.json expose: - "8080" networks: - opencdmp-proxy-network - opencdmp-postgres-shared-network - opencdmp-keycloak-shared-network ################################# RABBITMQ ############################################### opencdmp.rabbitmq: labels: NAME: "rabbitmq" cpus: 1 mem_limit: 512m restart: unless-stopped ports: - "0.0.0.0:15672:15672" - "0.0.0.0:5672:5672" env_file: - ${CONFIG_FILES_PATH}/rabbitmq/rabbitmq.env volumes: - ${CONFIG_FILES_PATH}/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro networks: - opencdmp-rabbitmq-shared-network ################################# PDF SERVICE ############################################## opencdmp.pdf-service: cpus: 2 mem_limit: 2048m restart: unless-stopped expose: - "3000" hostname: pdf-service env_file: - ${CONFIG_FILES_PATH}/pdf-service/pdf-service.env networks: - opencdmp-pdf-service-shared-network networks: opencdmp-proxy-network: name: opencdmp-proxy-network opencdmp-backend-network: name: opencdmp-backend-network opencdmp-plugins-network: name: opencdmp-plugins-network opencdmp-keycloak-shared-network: external: true name: opencdmp-keycloak-shared-network opencdmp-pdf-service-shared-network: external: true name: opencdmp-pdf-service-shared-network opencdmp-rabbitmq-shared-network: external: true name: opencdmp-rabbitmq-shared-network opencdmp-elastic-shared-network: external: true name: opencdmp-elastic-shared-network opencdmp-postgres-shared-network: external: true name: opencdmp-postgres-shared-network