diff --git a/docker/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json b/docker/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json index 10afc88ae..46423bf51 100644 --- a/docker/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json +++ b/docker/OpenResty-Orthanc-Keycloak/config/ohif-keycloak-realm.json @@ -457,6 +457,7 @@ "saml.force.post.binding": "false", "saml.multivalued.roles": "false", "saml.encrypt": "false", + "login_theme": "ohif", "saml.server.signature": "false", "saml.server.signature.keyinfo.ext": "false", "exclude.session.state.from.auth.response": "false", diff --git a/docker/OpenResty-Orthanc-Keycloak/docker-compose.yml b/docker/OpenResty-Orthanc-Keycloak/docker-compose.yml index 8c9457150..303f41a67 100644 --- a/docker/OpenResty-Orthanc-Keycloak/docker-compose.yml +++ b/docker/OpenResty-Orthanc-Keycloak/docker-compose.yml @@ -51,8 +51,8 @@ services: 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 + # Theme: https://www.keycloak.org/docs/latest/server_development/index.html#_themes + - ./volumes/keycloak-themes/ohif:/opt/jboss/keycloak/themes/ohif # Previous Realm Config - ./config/ohif-keycloak-realm.json:/tmp/ohif-keycloak-realm.json environment: diff --git a/docker/OpenResty-Orthanc-Keycloak/dockerfile b/docker/OpenResty-Orthanc-Keycloak/dockerfile index 762e6783d..c07eb48c6 100644 --- a/docker/OpenResty-Orthanc-Keycloak/dockerfile +++ b/docker/OpenResty-Orthanc-Keycloak/dockerfile @@ -23,7 +23,6 @@ # Stage 1: Build the application -# docker build -t ohif/viewer:latest . FROM node:11.2.0-slim as builder RUN mkdir /usr/src/app diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/account/.githold b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/account/.githold new file mode 100644 index 000000000..e69de29bb diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/admin/.githold b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/admin/.githold new file mode 100644 index 000000000..e69de29bb diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/email/.githold b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/email/.githold new file mode 100644 index 000000000..e69de29bb diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css new file mode 100644 index 000000000..5b5f0b9be --- /dev/null +++ b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/css/styles.css @@ -0,0 +1,212 @@ +body { + background-color: #040507; + background-image: url('../img/background.jpg'); + background-size: cover; + background-repeat: no-repeat; + + width: 100vw; + height: 100vh; + overflow: hidden; + + color: #fff; + font-family: sans-serif; + text-shadow: 0px 0px 10px #000; +} + +a { + color: #fff; +} + +div#kc-content { + position: absolute; + top: 20%; + left: 50%; + width: 550px; + margin-left: -180px; +} + +div#kc-form { + float: left; + width: 350px; +} + +div#kc-form label { + display: block; + font-size: 16px; +} + +div#info-area { + position: fixed; + bottom: 0; + left: 0; + margin-top: 40px; + background-color: rgba(0, 0, 0, 0.4); + padding: 20px; + width: 100%; +} + +div#info-area p { + margin-right: 30px; + display: inline; + text-shadow: none; +} + +input[type='text'], +input[type='password'] { + color: #333; + font-size: 18px; + margin-bottom: 20px; + background-color: rgba(256, 256, 256, 0.7); + border: 0px solid rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0 2px 2px rgba(0, 0, 0, 0.15); + padding: 10px; + width: 296px; +} + +input[type='text']:hover, +input[type='password']:hover { + background-color: rgba(256, 256, 256, 0.9); +} + +input[type='submit'] { + border: none; + + background: -webkit-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ); + background: -moz-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ); + background: -ms-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ); + background: -o-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ); + + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5); + + color: rgba(0, 0, 0, 0.6); + + font-size: 14px; + font-weight: bold; + + padding: 10px; + margin-top: 20px; + margin-right: 10px; + width: 150px; +} + +input[type='submit']:hover { + background-color: rgba(255, 255, 255, 0.8); +} + +div#kc-form-options div { + display: inline-block; + margin-right: 20px; + font-size: 12px; +} + +div#kc-form-options div label { + font-size: 12px; +} + +div#kc-feedback { + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5); + position: fixed; + top: 0; + left: 0; + width: 100%; + text-align: center; +} + +div#kc-feedback-wrapper { + padding: 1em; +} + +div.feedback-success { + background-color: rgba(155, 155, 255, 0.1); +} + +div.feedback-warning { + background-color: rgba(255, 175, 0, 0.1); +} + +div.feedback-error { + background-color: rgba(255, 0, 0, 0.1); +} + +div#kc-header { + display: none; +} + +div#kc-registration { + margin-bottom: 20px; +} + +div#social-login { + border-left: 1px solid rgba(255, 255, 255, 0.2); + float: right; + width: 150px; + padding: 20px 0 200px 40px; +} + +div.social-login span { + display: none; +} + +div#kc-social-providers ul { + list-style: none; + margin: 0; + padding: 0; +} + +div#kc-social-providers ul li { + margin-bottom: 20px; +} + +div#kc-social-providers ul li span { + display: inline; + width: 100px; +} + +a.zocial { + border: none; + background: -webkit-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ) !important; + background: -moz-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ) !important; + background: -ms-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ) !important; + background: -o-linear-gradient( + top, + rgba(255, 255, 255, 0.8), + rgba(255, 255, 255, 0.1) + ) !important; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5); + color: rgba(0, 0, 0, 0.6); + width: 130px; + text-shadow: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + padding-top: 0.2em; + padding-bottom: 0.2em; +} diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/img/background.jpg b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/img/background.jpg new file mode 100644 index 000000000..9d4f940bd Binary files /dev/null and b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/resources/img/background.jpg differ diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/theme.properties b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/theme.properties new file mode 100644 index 000000000..512f13be2 --- /dev/null +++ b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/login/theme.properties @@ -0,0 +1,3 @@ +parent=base +import=common/keycloak +styles=lib/zocial/zocial.css css/styles.css diff --git a/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/welcome/.githold b/docker/OpenResty-Orthanc-Keycloak/volumes/keycloak-themes/ohif/welcome/.githold new file mode 100644 index 000000000..e69de29bb