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/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 ################################# 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"] 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 # expose: # - "15672" # - "5672" # env_file: # - rabbitmq/rabbitmq.env # # volumes: # # - /rabbitmq/rabbitmq.config:/etc/rabbitmq/rabbitmq.config: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