services: ############################## PROXY ######################################## opendmp.proxy: user: ${DEPLOY_USER}:${DEPLOY_GROUP} restart: unless-stopped cpus: 1 mem_limit: 256m ports: - "${PROXY_APP_PORT}:8081" - "${PROXY_MS_PORT}:8082" env_file: - ./proxy/proxy.env volumes: # - ./proxy/template-variables:/etc/nginx/templates/10-variables.conf.template:ro - ./proxy/nginx.conf:/etc/nginx/nginx.conf - ./proxy/ProxyNginx.conf:/etc/nginx/conf.d/default.conf - ./proxy/nginx-selfsigned.crt:/certifcates/cert.crt - ./proxy/nginx-selfsigned.key:/certifcates/key.key - ./logs/proxy:/tmp/logs networks: - opendmp-proxy-network ############################## OPENDMP APP ################################# # opendmp.backend: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # restart: unless-stopped # cpus: 1 # mem_limit: 2048m # environment: # - PROFILE=${PROFILE} # ports: # - "8080" # volumes: # - opendmp/backend/config:/config # - opendmp/backend/certificates:/certificates # - opendmp/backend/i18n:/i18n # - opendmp/backend/material:/material # - opendmp/backend/Semantics.json:/Semantics.json # - storage/backend:/storage # - logs/backend:/logs # networks: # - opendmp-proxy-network # - opendmp-backend-network # - opendmp-plugins-network # - opendmp-gotenberg-shared-network # - opendmp-elastic-shared-network # - opendmp-keycloak-shared-network # - opendmp-postgres-shared-network # - opendmp-rabbitmq-shared-network # opendmp.frontend: # restart: unless-stopped # cpus: 1 # mem_limit: 2048m # ports: # - "8080" # volumes: # - opendmp/webapp/config.json:/usr/share/nginx/html/assets/config/config.json # - opendmp/webapp/nginx.conf:/etc/nginx/nginx.conf # - opendmp/webapp/WebAppNginx.conf:/etc/nginx/conf.d/default.conf # networks: # - opendmp-proxy-network # opendmp.notification: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # cpus: 1 # mem_limit: 1024m # restart: unless-stopped # ports: # - "8080" # environment: # - PROFILE=${PROFILE} # volumes: # - opendmp/notification-api/config:/config # - opendmp/notification-api/messages:/messages # - opendmp/notification-api/notification_templates:/notification_templates # - logs/notification-api:/logs # networks: # - opendmp-proxy-network # - opendmp-backend-network # - opendmp-plugins-network # - opendmp-rabbitmq-shared-network # - opendmp-keycloak-shared-network # - opendmp-postgres-shared-network # opendmp.annotation: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # cpus: 1 # mem_limit: 1024m # restart: unless-stopped # ports: # - "8080" # environment: # - PROFILE=${PROFILE} # volumes: # - opendmp/annotation-api/config:/config # - opendmp/annotation-api/messages:/messages # - logs/annotation-api:/logs # networks: # - opendmp-proxy-network # - opendmp-backend-network # - opendmp-plugins-network # - opendmp-rabbitmq-shared-network # - opendmp-keycloak-shared-network # - opendmp-postgres-shared-network # ############################## FILE-TRANSFORMER ################################# # opendmp.file.transformer.docx: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # restart: unless-stopped # cpus: 1 # mem_limit: 1024m # expose: # - "8080" # environment: # - SERVER_PORT=${SERVER_PORT} # - PROFILE=${PROFILE} # volumes: # - opendmp/file-transformer-docx/config:/config # - logs/file-transformer-docx:/logs # - storage/file-transformer-docx:/storage # networks: # - opendmp-backend-network # - opendmp-plugins-network # - opendmp-gotenberg-shared-network # opendmp.file.transformer.rdajson: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # restart: unless-stopped # cpus: 1 # mem_limit: 1024m # expose: # - "8080" # environment: # - SERVER_PORT=${SERVER_PORT} # - PROFILE=${PROFILE} # volumes: # - opendmp/file-transformer-rda-json/config:/config # - opendmp/file-transformer-rda-json/internal:/internal # - logs/file-transformer-rda-json:/logs # - storage/file-transformer-rda-json:/storage # networks: # - opendmp-backend-network # - opendmp-plugins-network ############################## ZENODO ####################################### # opendmp.zenodo: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # restart: unless-stopped # cpus: 1 # mem_limit: 1024m # expose: # - "8080" # environment: # - PROFILE=${PROFILE} # volumes: # - /opendmp/zenodo/config:/config # - /opendmp/zenodo/zenodo.jpg:/zenodo.jpg # - /logs/zenodo:/logs # networks: # - opendmp-plugins-network # - opendmp-keycloak-shared-network ############################## POSTGRES 16 ################################# opendmp.postgres: user: ${DEPLOY_USER}:${DEPLOY_GROUP} restart: unless-stopped mem_limit: 2048M ports: # - "127.0.0.1:${POSTGRES_PORT}:5432" # If you want to make it accessible locally only - "${POSTGRES_PORT}:5432" env_file: - ./postgres/postgres.env volumes: - ./storage/postgres/data:/var/lib/postgresql/data networks: - opendmp-postgres-shared-network healthcheck: test: ["CMD-SHELL", "sh -c 'pg_isready -U opendmp-psql -d opendmp'"] interval: 15s timeout: 60s retries: 5 ################################# ELK ################################################# # opendmp.elasticsearch: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # group_add: # - 0 # restart: unless-stopped # cpus: 2 # mem_limit: 1024m # env_file: # - elk/config-elk/elasticsearch/elastic.env # environment: # - ES_JAVA_OPTS=-Xmx512m -Xms512m # ulimits: # nproc: 65535 # memlock: # soft: -1 # hard: -1 # volumes: # - ./elk/config-elk/elasticsearch/certificates:/usr/share/elasticsearch/config/certificates # - ./elk/config-elk/elasticsearch/config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties:ro # - ./elk/config-elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro # - ./elk/data-elk/elasticsearch-data:/usr/share/elasticsearch/data # - ./elk/data-elk/elasticsearch-log:/usr/share/elasticsearch/logs # expose: # - "9200" # - "9300" # networks: # - opendmp-elastic-network # - opendmp-elastic-shared-network # healthcheck: # test: curl --cacert /usr/share/elasticsearch/config/certificates/ca/ca.crt -s https://localhost:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi # interval: 30s # timeout: 10s # retries: 5 # # opendmp.logstash: # # volumes: # # - /elk/data-elk/logstash-log:/usr/share/logstash/logs # opendmp.kibana: # user: ${DEPLOY_USER}:${DEPLOY_GROUP} # restart: unless-stopped # cpus: 2 # mem_limit: 1024m # environment: # - xpack.license.self_generated.type=basic # - xpack.security.enabled=true # volumes: # - ./elk/config-elk/kibana/certificates:/usr/share/kibana/certificates # - ./elk/config-elk/kibana/certificates/ca:/usr/share/kibana/certificate_authorities # - ./elk/config-elk/kibana/config:/usr/share/kibana/config:ro # expose: # - "5601" # networks: # - opendmp-elastic-network # # opendmp.filebeat: ############################## KEYCLOAK ############################################### opendmp.keycloak: restart: unless-stopped command: ["start", "--log=console,file", "--log-file=/tmp/logs/keycloak.log", "--import-realm"] # command: ["start", "--log=console,file", "--log-file=/tmp/logs/keycloak.log"] cpus: 1 mem_limit: 1024M security_opt: - seccomp:unconfined env_file: - keycloak/keycloak.env environment: - JAVA_OPTS_APPEND="-Djava.net.preferIPv4Stack=true" volumes: - ./logs/keycloak:/tmp/logs - ./keycloak/imports/opendmp-realm.json:/opt/keycloak/data/import/opendmp-realm.json - ./keycloak/certs/keycloak-selfsigned.crt:/tmp/keycloak-selfsigned.crt:ro - ./keycloak/certs/keycloak-selfsigned.key:/tmp/keycloak-selfsigned.key:ro expose: - "8443" networks: - opendmp-proxy-network - opendmp-postgres-shared-network - opendmp-keycloak-shared-network # ############################## RABBITMQ ############################################### opendmp.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: - rabbitmq/rabbitmq.env volumes: - /rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro networks: - opendmp-proxy-network - opendmp-rabbitmq-shared-network # ############################## GOTENBERG ############################################## opendmp.gotenberg: mem_limit: 2048m restart: unless-stopped expose: - "3000" hostname: gotenberg env_file: - gotenberg/gotenberg.env networks: - opendmp-gotenberg-shared-network networks: opendmp-elastic-network: name: opendmp-elastic-network opendmp-proxy-network: name: opendmp-proxy-network opendmp-backend-network: name: opendmp-backend-network opendmp-plugins-network: name: opendmp-plugins-network opendmp-keycloak-shared-network: external: true name: opendmp-keycloak-shared-network opendmp-gotenberg-shared-network: external: true name: opendmp-gotenberg-shared-network opendmp-rabbitmq-shared-network: external: true name: opendmp-rabbitmq-shared-network opendmp-elastic-shared-network: external: true name: opendmp-elastic-shared-network opendmp-postgres-shared-network: external: true name: opendmp-postgres-shared-network