# https://eclipsesource.com/blogs/2018/01/11/authenticating-reverse-proxy-with-keycloak/ version: '3.5' services: # Exposed server that's handling incoming web requests # Underlying image: openresty/openresty:alpine-fat ohif_viewer: build: # Project root context: ./../../ # Relative to context dockerfile: ./docker/OpenResty-Orthanc-Keycloak/dockerfile image: webapp:latest container_name: webapp restart: on-failure volumes: # Nginx config - ./config/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf:ro # Logs - ./logs/nginx/access.log:/var/logs/nginx/mydomain.access.log - ./logs/nginx/error.log:/var/logs/nginx/mydomain.error.log # Let's Encrypt # - letsencrypt_certificates:/etc/letsencrypt # - letsencrypt_challenges:/var/www/letsencrypt ports: # HOST_PORT:CONTAINER_PORT # EXTERNAL:INTERNAL - '443:443' # SSL - '80:80' # Web depends_on: - orthanc - keycloak # Our image archive (PACS) # A client protected by keycloak # authenticated reverse proxy via `authproxy` orthanc: container_name: orthanc image: jodogne/orthanc-plugins volumes: - ./config/orthanc.json:/etc/orthanc/orthanc.json:ro restart: always # Database for our Keycloak instance keycloak_postgres: hostname: keycloak-db restart: on-failure image: postgres:11.2 volumes: - keycloak_postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: keycloak POSTGRES_USER: keycloak POSTGRES_PASSWORD: password POSTGRES_ROOT_PASSWORD: password dns: - 8.8.8.8 # LINK: https://hub.docker.com/r/jboss/keycloak keycloak: image: jboss/keycloak:6.0.1 hostname: keycloak container_name: keycloak volumes: # Theme: https://www.keycloak.org/docs/latest/server_development/index.html#creating-a-theme # - ./volumes/keycloak-themes:/opt/jboss/keycloak/themes # Previous Realm Config - ./config/ohif-keycloak-realm.json:/tmp/ohif-keycloak-realm.json environment: # Database DB_VENDOR: postgres DB_ADDR: postgres DB_PORT: 5432 DB_DATABASE: keycloak DB_SCHEMA: public DB_USER: keycloak DB_PASSWORD: password # Keycloak KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: password KEYCLOAK_IMPORT: /tmp/ohif-keycloak-realm.json # KEYCLOAK_WELCOME_THEME: # KEYCLOAK_DEFAULT_THEME: # KEYCLOAK_HOSTNAME: (recommended in prod) # KEYCLOAK_LOGLEVEL: DEBUG PROXY_ADDRESS_FORWARDING: 'true' depends_on: - postgres restart: unless-stopped # LINK: https://hub.docker.com/_/postgres/ postgres: image: postgres:11.2 hostname: postgres container_name: postgres volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: keycloak POSTGRES_USER: keycloak POSTGRES_PASSWORD: password restart: unless-stopped volumes: postgres_data: driver: local