version: "3"
services:
elasticsearch:
image:
docker.elastic.co/elasticsearch/elasticsearch:8.15.1 environment:
ES_JAVA_OPTS: -Xms1024m -Xmx1024m
discovery.type: single-node
xpack.security.enabled: "false"
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "9200:9200"
- "9300:9300"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/esdatadir:/usr/share/elasticsearch/data
kibana:
image:
docker.elastic.co/kibana/kibana:8.15.1 logging:
driver: json-file
options:
max-size: "10m"
depends_on:
- elasticsearch
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
logstash:
image: dcm4che/logstash-dcm4chee:8.4.2-15
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "12201:12201/udp"
- "8514:8514/udp"
- "8514:8514"
depends_on:
- elasticsearch
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/logstash/filter-hashtree:/usr/share/logstash/data/filter-hashtree
ldap:
image: dcm4che/slapd-dcm4chee:2.6.7-33.1
logging:
driver: gelf
options:
gelf-address: "udp://
192.168.1.1:12201"
tag: slapd
ports:
- "389:389"
- "636:636"
env_file: docker-compose.env
environment:
SYSLOG_HOST: logstash
SYSLOG_PORT: 8514
SYSLOG_PROTOCOL: TLS
STORAGE_DIR: /storage/fs1
volumes:
- /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data
- /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d
mariadb:
image: mariadb:10.11.4
logging:
driver: gelf
options:
gelf-address: "udp://
192.168.1.1:12201"
tag: mariadb
ports:
- "3306:3306"
env_file: docker-compose.env
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: keycloak
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/mysql:/var/lib/mysql
keycloak:
image: dcm4che/keycloak:26.0.6
logging:
driver: gelf
options:
gelf-address: "udp://
192.168.1.1:12201"
tag: keycloak
ports:
- "8843:8843"
env_file: docker-compose.env
environment:
KC_HTTPS_PORT: 8843
KC_HOSTNAME:
https://192.168.1.1:8843 KC_HOSTNAME_BACKCHANNEL_DYNAMIC: 'true'
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: changeit
KC_DB: mariadb
KC_DB_URL_DATABASE: keycloak
KC_DB_URL_HOST: mariadb
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
KC_LOG: file
KC_LOG_GELF_HOST: logstash
ARCHIVE_HOST: TESTPACS
KIBANA_CLIENT_ID: kibana
KIBANA_CLIENT_SECRET: changeit
KIBANA_REDIRECT_URL:
https://192.168.1.1:8643/oauth2/callback/* KEYCLOAK_WAIT_FOR: ldap:389 mariadb:3306 logstash:8514
depends_on:
- ldap
- mariadb
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/keycloak:/opt/keycloak/data
- /var/local/dcm4chee-arc/keystore:/opt/wildfly/keystore
oauth2-proxy:
image: dcm4che/oauth2-proxy:7.7.1
ports:
- "8643:8643"
restart: on-failure
environment:
OAUTH2_PROXY_HTTPS_ADDRESS:
0.0.0.0:8643 OAUTH2_PROXY_PROVIDER: keycloak-oidc
OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
OAUTH2_PROXY_UPSTREAMS: "
http://kibana:5601"
OAUTH2_PROXY_OIDC_ISSUER_URL: "
https://192.168.1.1:8843/realms/dcm4che"
OAUTH2_PROXY_REDIRECT_URL: "
https://192.168.1.1:8643/oauth2/callback"
OAUTH2_PROXY_ALLOWED_ROLES: auditlog
OAUTH2_PROXY_CLIENT_ID: kibana
OAUTH2_PROXY_CLIENT_SECRET: changeit
OAUTH2_PROXY_EMAIL_DOMAINS: "*"
OAUTH2_PROXY_OIDC_EMAIL_CLAIM: "sub"
OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL: "true"
OAUTH2_PROXY_COOKIE_SECRET: T0F1dGhLaWJhbmFUZXN0cw==
OAUTH2_PROXY_SSL_INSECURE_SKIP_VERIFY: "true"
OAUTH2_PROXY_TLS_CERT_FILE: /etc/certs/cert.pem
OAUTH2_PROXY_TLS_KEY_FILE: /etc/certs/key.pem
OAUTH2_PROXY_CUSTOM_TEMPLATES_DIR: /templates
depends_on:
- keycloak
db:
image: dcm4che/postgres-dcm4chee:17.1-33
logging:
driver: gelf
options:
gelf-address: "udp://
192.168.1.1:12201"
tag: postgres
ports:
- "5432:5432"
environment:
POSTGRES_DB: pacsdb
POSTGRES_USER: pacs
POSTGRES_PASSWORD: pacs
depends_on:
- logstash
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
arc:
image: dcm4che/dcm4chee-arc-psql:5.33.1-secure
logging:
driver: gelf
options:
gelf-address: "udp://
192.168.1.1:12201"
tag: dcm4chee-arc
ports:
- "8080:8080"
- "8443:8443"
- "9990:9990"
- "9993:9993"
- "11112:11112"
- "2762:2762"
- "2575:2575"
- "12575:12575"
env_file: docker-compose.env
environment:
LOGSTASH_HOST: logstash
POSTGRES_DB: pacsdb
POSTGRES_USER: pacs
POSTGRES_PASSWORD: pacs
AUTH_SERVER_URL:
https://keycloak:8843 UI_AUTH_SERVER_URL:
https://192.168.1.1:8843 WILDFLY_CHOWN: /storage
WILDFLY_WAIT_FOR: ldap:389 db:5432 keycloak:8843 logstash:8514
depends_on:
- ldap
- keycloak
- db
- logstash
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
- /var/local/dcm4chee-arc/keystore:/opt/wildfly/keystore
- /dcmstore:/storage