argos/deployment/docker-compose.override.yml

325 lines
10 KiB
YAML

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