diff --git a/distro/docker-compose/.env.template b/distro/docker-compose/.env.template index be38c2c7a..cc5ed8fcd 100644 --- a/distro/docker-compose/.env.template +++ b/distro/docker-compose/.env.template @@ -7,20 +7,9 @@ APICURIO_UI_VERSION=latest-release HOST=$HOST #KEYCLOAK - -KC_MYSQL_DATABASE=keycloak -KC_MYSQL_ROOT_PASSWORD=$KC_ROOT_DB_PASSWORD -KC_MYSQL_USER=keycloak -KC_MYSQL_PASSWORD=$KC_DB_PASSWORD - KEYCLOAK_USER=admin KEYCLOAK_PASSWORD=$KC_PASSWORD -DB_VENDOR=mysql -DB_ADDR=jboss-keycloak-mysql -DB_USER=keycloak -DB_PASSWORD=$KC_DB_PASSWORD - QUARKUS_PROFILE=prod #APICURIO-STUDIO @@ -29,8 +18,8 @@ AS_DATABASE=apicuriodb AS_DB_USER=apicurio AS_DB_PASSWORD=$AS_DB_PASSWORD -APICURIO_KC_AUTH_URL=https://studio-auth.apicur.io/auth -APICURIO_KC_REALM=apicurio-local +APICURIO_KC_AUTH_URL=http://localhost:8080 +APICURIO_KC_REALM=apicurio APICURIO_DB_TYPE=$DB_TYPE APICURIO_DB_DRIVER_NAME=$DB_DRIVER @@ -47,8 +36,8 @@ APICURIO_GITLAB_API_URL= APICURIO_BITBUCKET_API_URL= APICURIO_UI_KC_CLIENT_ID=apicurio-studio -APICURIO_UI_HUB_API_URL=http://$HOST:8091 -APICURIO_UI_EDITING_URL=ws://$HOST:8092 +APICURIO_UI_HUB_API_URL=http://localhost:8091 +APICURIO_UI_EDITING_URL=ws://localhost:8092 APICURIO_UI_FEATURE_MICROCKS=true APICURIO_UI_VALIDATION_CHANNELNAME_REGEXP='([^\x00-\x20\x7f"'\''%<>\\^`{|}]|%[0-9A-Fa-f]{2}|\{[+#./;?&=,!@|]?((\w|%[0-9A-Fa-f]{2})(\.?(\w|%[0-9A-Fa-f]{2}))*(:[1-9]\d{0,3}|\*)?)(,((\w|%[0-9A-Fa-f]{2})(\.?(\w|%[0-9A-Fa-f]{2}))*(:[1-9]\d{0,3}|\*)?))*\})*' diff --git a/distro/docker-compose/Readme.md b/distro/docker-compose/Readme.md index 19add8b23..b7e650f9f 100644 --- a/distro/docker-compose/Readme.md +++ b/distro/docker-compose/Readme.md @@ -23,42 +23,6 @@ The scripts will create 3 files: Supported databases: - postgresql -### Docker based setup - -The easiest way is to open a terminal or PowerShell, and navigate into distro/quarkus-docker-compose folder. In this folder enter the command below. On Windows please make sure, that your drives shares are enabled! - -``` -On Linux/Mac: - -docker run -v $(pwd):/apicurio carnalca/apicurio-setup-image:latest bash /apicurio/setup.sh {IP_OF_YOUR_HOST} - -For example: -docker run -v $(pwd):/apicurio carnalca/apicurio-setup-image:latest bash /apicurio/setup.sh 192.168.1.231 -``` - -``` -On Windows: - -docker run -v ${PWD}:/apicurio chriske/apicurio-setup-image:latest bash /apicurio/setup.sh {IP_OF_YOUR_HOST} - -For example: -docker run -v ${PWD}:/apicurio chriske/apicurio-setup-image:latest bash /apicurio/setup.sh 192.168.1.231 -``` - -This command will pull a minimal alpine linux based image, mount the current folder to it, and it will run the setup script. At the end of the run, it will print the admin password for Keycloak, and the URLs for the services. Like this: - -``` -Keycloak username: admin -Keycloak password: op4oUQ - -Keycloak URL: 192.168.1.231:8090 -Apicurio URL: 192.168.1.231:8093 -Microcks URL: 192.168.1.231:8900 - -``` - -Please copy these values somewhere where you can find them easily! - ### Script based setup If you're using NIX based OS, you can run the setup script without the docker wrapper. The only dependency is "util-linux" package which contains a tool called uuidgen. @@ -99,12 +63,11 @@ For PostgreSQL config: ### Recommended Approach due to a bug in Quarkus -If you want to do it manually, here are the commands. You will need to start Keycloak, then wait and then start the Quarkus apps: +If you want to do it manually, here is the command: ``` -docker-compose -f docker-compose.keycloak.yml build && docker-compose -f docker-compose.keycloak.yml up -docker-compose -f docker-compose.microcks.yml -f docker-compose.apicurio.yml -f docker-compose-as-postgre.yml up +docker-compose -f docker-compose.microcks.yml -f docker-compose.apicurio.yml up ``` @@ -120,7 +83,7 @@ docker system prune --volumes The Keycloak instance is already configured, you don't have to create the realms manually. At the first start there are no default users added to Keycloak. Please navigate to: -`http://YOUR_IP:8090` +`http://localhost:8090` The default credentials for Keycloak are: `admin` and the password can be found in the previously generated `.env` file, under `KEYCLOAK_PASSWORD`. @@ -129,5 +92,5 @@ Select Apicurio realm and add a user to it. After this, you have to do this with ## Login to Apicurio and Microcks -Apicurio URL: `http://YOUR_IP:8093` -Microcks URL: `http://YOUR_IP:8900` +Apicurio URL: `http://localhost:8093` +Microcks URL: `http://localhost:8900` diff --git a/distro/docker-compose/docker-compose-as-postgre.yml b/distro/docker-compose/docker-compose-as-postgre.yml deleted file mode 100644 index 8f14f4952..000000000 --- a/distro/docker-compose/docker-compose-as-postgre.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3' - -services: - apicurio-studio-db: - image: 'postgres:15.2' - environment: - POSTGRES_DB: ${AS_DATABASE} - POSTGRES_USER: ${AS_DB_USER} - POSTGRES_PASSWORD: ${AS_DB_PASSWORD} - volumes: - - 'postgre_apicurio:/var/lib/postgresql/data' diff --git a/distro/docker-compose/docker-compose.apicurio.yml b/distro/docker-compose/docker-compose.apicurio.yml index bab6a49cf..1454f8c6d 100644 --- a/distro/docker-compose/docker-compose.apicurio.yml +++ b/distro/docker-compose/docker-compose.apicurio.yml @@ -6,19 +6,24 @@ volumes: services: apicurio-studio-db: - + image: 'postgres:15.2' + environment: + POSTGRES_DB: ${AS_DATABASE} + POSTGRES_USER: ${AS_DB_USER} + POSTGRES_PASSWORD: ${AS_DB_PASSWORD} + volumes: + - 'postgre_apicurio:/var/lib/postgresql/data' + network_mode: host apicurio-studio-ws: image: 'apicurio/apicurio-studio-ws:${APICURIO_WS_VERSION}' depends_on: - apicurio-studio-db - ports: - - '8092:8080' environment: JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true' QUARKUS_PROFILE: ${QUARKUS_PROFILE} - + QUARKUS_HTTP_PORT: 8092 APICURIO_HUB_STORAGE_JDBC_TYPE: ${APICURIO_DB_TYPE} APICURIO_DB_DRIVER_NAME: ${APICURIO_DB_DRIVER_NAME} APICURIO_DB_CONNECTION_URL: ${APICURIO_DB_CONNECTION_URL} @@ -26,6 +31,7 @@ services: APICURIO_DB_PASSWORD: ${APICURIO_DB_PASSWORD} APICURIO_DB_INITIALIZE: ${WS_APICURIO_DB_INITIALIZE} APICURIO_SHARE_FOR_EVERYONE: ${APICURIO_SHARE_FOR_EVERYONE} + network_mode: host apicurio-studio-api: @@ -34,13 +40,12 @@ services: depends_on: - apicurio-studio-db - apicurio-studio-ws - ports: - - '8091:8080' + - keycloak-server environment: JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true' QUARKUS_PROFILE: ${QUARKUS_PROFILE} - + QUARKUS_HTTP_PORT: 8091 APICURIO_KC_AUTH_URL: ${APICURIO_KC_AUTH_URL} APICURIO_KC_REALM: ${APICURIO_KC_REALM} APICURIO_KC_CLIENT_ID: ${API_APICURIO_KC_CLIENT_ID} @@ -56,6 +61,7 @@ services: APICURIO_GITLAB_API_URL: ${APICURIO_GITLAB_API_URL} APICURIO_BITBUCKET_API_URL: ${APICURIO_BITBUCKET_API_URL} APICURIO_SHARE_FOR_EVERYONE: ${APICURIO_SHARE_FOR_EVERYONE} + network_mode: host apicurio-studio-ui: @@ -64,11 +70,10 @@ services: depends_on: - apicurio-studio-api - apicurio-studio-ws - ports: - - '8093:8080' + - keycloak-server environment: JAVA_TOOL_OPTIONS: '-Djava.net.preferIPv4Stack=true' - + QUARKUS_HTTP_PORT: 8093 QUARKUS_PROFILE: ${QUARKUS_PROFILE} APICURIO_KC_CLIENT_ID: ${APICURIO_UI_KC_CLIENT_ID} @@ -80,3 +85,20 @@ services: APICURIO_UI_FEATURE_SHARE_WITH_EVERYONE: ${APICURIO_UI_FEATURE_SHARE_WITH_EVERYONE} APICURIO_UI_LOGOUT_REDIRECT_URI: / APICURIO_UI_VALIDATION_CHANNELNAME_REGEXP: ${APICURIO_UI_VALIDATION_CHANNELNAME_REGEXP} + APICURIO_OIDC_REDIRECT_HTTPS: "false" + network_mode: host + + keycloak-server: + image: quay.io/keycloak/keycloak:19.0.2 + environment: + KEYCLOAK_ADMIN: ${KEYCLOAK_USER} + KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_PASSWORD} + KEYCLOAK_IMPORT: /microcks-keycloak-config/apicurio-realm.json,/microcks-keycloak-config/microcks-realm.json + command: + - start-dev + - --import-realm + volumes: + - ./config/keycloak/apicurio-realm.json:/opt/keycloak/data/import/apicurio-realm.json + - ./config/keycloak/microcks-realm.json:/opt/keycloak/data/import/microcks-realm.json + network_mode: host + diff --git a/distro/docker-compose/docker-compose.microcks.yml b/distro/docker-compose/docker-compose.microcks.yml new file mode 100644 index 000000000..97d6d0876 --- /dev/null +++ b/distro/docker-compose/docker-compose.microcks.yml @@ -0,0 +1,36 @@ +version: '3' + +volumes: + mongo_data2: {} + +networks: + main: +services: + mongo: + image: mongo:3.4.23 + container_name: microcks-mongo + volumes: + - "mongo_data2:/data/db" + + postman: + image: microcks/microcks-postman-runtime:latest + container_name: microcks-postman-runtime + + microcks: + depends_on: + - mongo + - postman + - keycloak-server + image: microcks/microcks:latest + container_name: microcks + volumes: + - ./config:/deployments/config + ports: + - "8900:8080" + environment: + SPRING_PROFILES_ACTIVE: ${MR_SPRING_PROFILES_ACTIVE} + SPRING_DATA_MONGODB_URI: ${MR_SPRING_DATA_MONGODB_URI} + SPRING_DATA_MONGODB_DATABASE: ${MR_SPRING_DATA_MONGODB_DATABASE} + POSTMAN_RUNNER_URL: ${MR_POSTMAN_RUNNER_URL} + TEST_CALLBACK_URL: ${MR_TEST_CALLBACK_URL} + KEYCLOAK_URL: ${MR_KEYCLOAK_URL} diff --git a/distro/docker-compose/keycloak/Dockerfile b/distro/docker-compose/keycloak/Dockerfile deleted file mode 100644 index 60fae48e5..000000000 --- a/distro/docker-compose/keycloak/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM jboss/keycloak:14.0.0 - -ADD apicurio /opt/jboss/keycloak/themes/apicurio diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/css/login.css b/distro/docker-compose/keycloak/apicurio/login/resources/css/login.css deleted file mode 100644 index 6ee2e4d7d..000000000 --- a/distro/docker-compose/keycloak/apicurio/login/resources/css/login.css +++ /dev/null @@ -1,692 +0,0 @@ -.login-pf body { - background: url("../img/jumbo-bg.png") no-repeat center center fixed; - background-size: cover; - height: 100%; -} - -/*IE compatibility*/ -.pf-c-form-control { - font-size: 14px; - font-size: var(--pf-global--FontSize--sm); - border-width: 1px; - border-width: var(--pf-global--BorderWidth--sm);; - border-color: #EDEDED #EDEDED #8A8D90 #EDEDED; - border-color: var(--pf-global--BorderColor--300) var(--pf-global--BorderColor--300) var(--pf-global--BorderColor--200) var(--pf-global--BorderColor--300); - background-color: #FFFFFF; - background-color: var(--pf-global--BackgroundColor--100); - height: 36px; - height: calc(var(--pf-c-form-control--FontSize) * var(--pf-c-form-control--LineHeight) + var(--pf-c-form-control--BorderWidth) * 2 + var(--pf-c-form-control--PaddingTop) + var(--pf-c-form-control--PaddingBottom)); - padding: 5px 0.5rem; - padding: var(--pf-c-form-control--PaddingTop) var(--pf-c-form-control--PaddingRight) var(--pf-c-form-control--PaddingBottom) var(--pf-c-form-control--PaddingLeft); -} - -.pf-c-form-control:hover, .pf-c-form-control:focus { - border-bottom-color: #0066CC; - border-bottom-color: var(--pf-global--primary-color--100); - border-bottom-width: 2px; - border-bottom-width: var(--pf-global--BorderWidth--md); -} - -.pf-c-form-control[aria-invalid="true"] { - border-bottom-color: #C9190B; - border-bottom-color: var(--pf-global--danger-color--100); - border-bottom-width: 2px; - border-bottom-width: var(--pf-global--BorderWidth--md); -} - -.pf-c-alert.pf-m-inline { - margin-bottom: 0.5rem; /* default - IE compatibility */ - margin-bottom: var(--pf-global--spacer--sm); - padding: 0.25rem; - padding: var(--pf-global--spacer--xs); - border: solid #ededed; - border: solid var(--pf-global--BorderColor--300); - border-width: 1px; - border-width: var(--pf-c-alert--m-inline--BorderTopWidth) var(--pf-c-alert--m-inline--BorderRightWidth) var(--pf-c-alert--m-inline--BorderBottomWidth) var(--pf-c-alert--m-inline--BorderLeftWidth); - display: -ms-flexbox; - display: grid; - -ms-grid-columns: max-content 1fr max-content; - grid-template-columns:max-content 1fr max-content; - grid-template-columns: var(--pf-c-alert--grid-template-columns); - grid-template-rows: 1fr auto; - grid-template-rows: var(--pf-c-alert--grid-template-rows); -} - -.pf-c-alert.pf-m-inline::before { - position: absolute; - top: -1px; - top: var(--pf-c-alert--m-inline--before--Top); - bottom: -1px; - bottom: var(--pf-c-alert--m-inline--before--Bottom); - left: 0; - width: 3px; - width: var(--pf-c-alert--m-inline--before--Width); - content: ""; - background-color: #FFFFFF; - background-color: var(--pf-global--BackgroundColor--100); -} - -.pf-c-alert.pf-m-inline.pf-m-success::before { - background-color: #92D400; - background-color: var(--pf-global--success-color--100); -} - -.pf-c-alert.pf-m-inline.pf-m-danger::before { - background-color: #C9190B; - background-color: var(--pf-global--danger-color--100); -} - -.pf-c-alert.pf-m-inline.pf-m-warning::before { - background-color: #F0AB00; - background-color: var(--pf-global--warning-color--100); -} - -.pf-c-alert.pf-m-inline .pf-c-alert__icon { - padding: 1rem 0.5rem 1rem 1rem; - padding: var(--pf-c-alert--m-inline__icon--PaddingTop) var(--pf-c-alert--m-inline__icon--PaddingRight) var(--pf-c-alert--m-inline__icon--PaddingBottom) var(--pf-c-alert--m-inline__icon--PaddingLeft); - font-size: 16px; - font-size: var(--pf-c-alert--m-inline__icon--FontSize); -} - -.pf-c-alert.pf-m-success .pf-c-alert__icon { - color: #92D400; - color: var(--pf-global--success-color--100); -} - -.pf-c-alert.pf-m-success .pf-c-alert__title { - color: #486B00; - color: var(--pf-global--success-color--200); -} - -.pf-c-alert.pf-m-danger .pf-c-alert__icon { - color: #C9190B; - color: var(--pf-global--danger-color--100); -} - -.pf-c-alert.pf-m-danger .pf-c-alert__title { - color: #A30000; - color: var(--pf-global--danger-color--200); -} - -.pf-c-alert.pf-m-warning .pf-c-alert__icon { - color: #F0AB00; - color: var(--pf-global--warning-color--100); -} - -.pf-c-alert.pf-m-warning .pf-c-alert__title { - color: #795600; - color: var(--pf-global--warning-color--200); -} - -.pf-c-alert__title { - font-size: 14px; /* default - IE compatibility */ - font-size: var(--pf-global--FontSize--sm); - padding: 5px 8px; - padding: var(--pf-c-alert__title--PaddingTop) var(--pf-c-alert__title--PaddingRight) var(--pf-c-alert__title--PaddingBottom) var(--pf-c-alert__title--PaddingLeft); -} - -.pf-c-button{ - padding:0.375rem 1rem; - padding: var(--pf-global--spacer--form-element) var(--pf-global--spacer--md); -} - -/* default - IE compatibility */ -.pf-m-primary { - color: #FFFFFF; - background-color: #0066CC; - background-color: var(--pf-global--primary-color--100); -} - -/* default - IE compatibility */ -.pf-m-primary:hover { - background-color: #004080; - background-color: var(--pf-global--primary-color--200); -} - -/* default - IE compatibility */ -.pf-c-button.pf-m-control { - border: solid 1px; - border: solid var(--pf-global--BorderWidth--sm); - border-color: rgba(230, 230, 230, 0.5); -} -/*End of IE compatibility*/ -h1#kc-page-title { - margin-top: 10px; -} - -#kc-locale ul { - background-color: #FFF; - background-color: var(--pf-global--BackgroundColor--100); - display: none; - top: 20px; - min-width: 100px; - padding: 0; -} - -#kc-locale:hover ul { - display: block; -} - -/* IE compatibility */ -#kc-locale-dropdown a { - color: #6A6E73; - color: var(--pf-global--Color--200); - text-align: right; - font-size: 14px; - font-size: var(--pf-global--FontSize--sm); -} - -/* IE compatibility */ -a#kc-current-locale-link::after { - content: "\2c5"; - margin-left: 4px; - margin-left: var(--pf-global--spacer--xs) -} - -.login-pf .container { - padding-top: 40px; -} - -.login-pf a:hover { - color: #0099d3; -} - -#kc-logo { - width: 100%; -} - -#kc-logo-wrapper { - background-image: url(../img/keycloak-logo-2.png); - background-repeat: no-repeat; - height: 63px; - width: 300px; - margin: 62px auto 0; -} - -div.kc-logo-text { - background-image: url(../img/keycloak-logo-text.png); - background-repeat: no-repeat; - height: 63px; - width: 300px; - margin: 0 auto; -} - -div.kc-logo-text span { - display: none; -} - -#kc-header { - color: #ededed; - overflow: visible; - white-space: nowrap; -} - -#kc-header-wrapper { - font-size: 29px; - text-transform: uppercase; - letter-spacing: 3px; - line-height: 1.2em; - padding: 62px 10px 20px; - white-space: normal; - background: url("../img/apicurio_logo_darkbkg_450px.png") no-repeat; - background-position: center 30px; - background-size: 375px 88px; - text-indent: -5000px; -} - -#kc-content { - width: 100%; -} - -#kc-attempted-username { - font-size: 20px; - font-family: inherit; - font-weight: normal; - padding-right: 10px; -} - -#kc-username { - text-align: center; - margin-bottom:-10px; -} - -#kc-webauthn-settings-form { - padding-top: 8px; -} - -#kc-content-wrapper { - margin-top: 20px; -} - -#kc-form-wrapper { - margin-top: 10px; -} - -#kc-info { - margin: 20px -40px -30px; -} - -#kc-info-wrapper { - font-size: 13px; - padding: 15px 35px; - background-color: #F0F0F0; -} - -#kc-form-options span { - display: block; -} - -#kc-form-options .checkbox { - margin-top: 0; - color: #72767b; -} - -#kc-terms-text { - margin-bottom: 20px; -} - -#kc-registration { - margin-bottom: 0; -} - -/* TOTP */ - -.subtitle { - text-align: right; - margin-top: 30px; - color: #909090; -} - -.required { - color: #A30000; /* default - IE compatibility */ - color: var(--pf-global--danger-color--200); -} - -ol#kc-totp-settings { - margin: 0; - padding-left: 20px; -} - -ul#kc-totp-supported-apps { - margin-bottom: 10px; -} - -#kc-totp-secret-qr-code { - max-width:150px; - max-height:150px; -} - -#kc-totp-secret-key { - background-color: #fff; - color: #333333; - font-size: 16px; - padding: 10px 0; -} - -/* OAuth */ - -#kc-oauth h3 { - margin-top: 0; -} - -#kc-oauth ul { - list-style: none; - padding: 0; - margin: 0; -} - -#kc-oauth ul li { - border-top: 1px solid rgba(255, 255, 255, 0.1); - font-size: 12px; - padding: 10px 0; -} - -#kc-oauth ul li:first-of-type { - border-top: 0; -} - -#kc-oauth .kc-role { - display: inline-block; - width: 50%; -} - -/* Code */ -#kc-code textarea { - width: 100%; - height: 8em; -} - -/* Social */ -.kc-social-links { - margin-top: 20px; -} - -.kc-social-provider-logo { - font-size: 23px; - width: 30px; - height: 25px; - float: left; -} - -.kc-social-gray { - color: #737679; /* default - IE compatibility */ - color: var(--pf-global--Color--200); -} - -.kc-social-item { - margin-bottom: 0.5rem; /* default - IE compatibility */ - margin-bottom: var(--pf-global--spacer--sm); - font-size: 15px; - text-align: center; -} - -.kc-social-provider-name { - position: relative; - top: 3px; -} - -.kc-social-icon-text { - left: -15px; -} - -.kc-social-grid { - display:grid; - grid-column-gap: 10px; - grid-row-gap: 5px; - grid-column-end: span 6; - --pf-l-grid__item--GridColumnEnd: span 6; -} - -.kc-social-grid .kc-social-icon-text { - left: -10px; -} - -.kc-login-tooltip { - position: relative; - display: inline-block; -} - -.kc-social-section { - text-align: center; -} - -.kc-social-section hr{ - margin-bottom: 10px -} - -.kc-login-tooltip .kc-tooltip-text{ - top:-3px; - left:160%; - background-color: black; - visibility: hidden; - color: #fff; - - min-width:130px; - text-align: center; - border-radius: 2px; - box-shadow:0 1px 8px rgba(0,0,0,0.6); - padding: 5px; - - position: absolute; - opacity:0; - transition:opacity 0.5s; -} - -/* Show tooltip */ -.kc-login-tooltip:hover .kc-tooltip-text { - visibility: visible; - opacity:0.7; -} - -/* Arrow for tooltip */ -.kc-login-tooltip .kc-tooltip-text::after { - content: " "; - position: absolute; - top: 15px; - right: 100%; - margin-top: -5px; - border-width: 5px; - border-style: solid; - border-color: transparent black transparent transparent; -} - -@media (min-width: 768px) { - #kc-container-wrapper { - position: absolute; - width: 100%; - } - - .login-pf .container { - padding-right: 80px; - } - - #kc-locale { - position: relative; - text-align: right; - z-index: 9999; - } -} - -@media (max-width: 767px) { - - .login-pf body { - background: white; - } - - #kc-header { - padding-left: 15px; - padding-right: 15px; - float: none; - text-align: left; - } - - #kc-header-wrapper { - font-size: 16px; - font-weight: bold; - padding: 20px 60px 0 0; - color: #72767b; - letter-spacing: 0; - } - - div.kc-logo-text { - margin: 0; - width: 150px; - height: 32px; - background-size: 100%; - } - - #kc-form { - float: none; - } - - #kc-info-wrapper { - border-top: 1px solid rgba(255, 255, 255, 0.1); - background-color: transparent; - } - - .login-pf .container { - padding-top: 15px; - padding-bottom: 15px; - } - - #kc-locale { - position: absolute; - width: 200px; - top: 20px; - right: 20px; - text-align: right; - z-index: 9999; - } - - #kc-logo-wrapper { - background-size: 100px 21px; - height: 21px; - width: 100px; - margin: 20px 0 0 20px; - } - -} - -@media (min-height: 646px) { - #kc-container-wrapper { - bottom: 12%; - } -} - -@media (max-height: 645px) { - #kc-container-wrapper { - padding-top: 50px; - top: 20%; - } -} - -.card-pf form.form-actions .btn { - float: right; - margin-left: 10px; -} - -#kc-form-buttons { - margin-top: 20px; -} - -.login-pf-page .login-pf-brand { - margin-top: 20px; - max-width: 360px; - width: 40%; -} - -/* Internet Explorer 11 compatibility workaround for select-authenticator screen */ -@media all and (-ms-high-contrast: none), -(-ms-high-contrast: active) { - .select-auth-box-parent { - border-top: 1px solid #f0f0f0; - padding-top: 1rem; - padding-bottom: 1rem; - cursor: pointer; - } - - .select-auth-box-headline { - font-size: 16px; - color: #06c; - font-weight: bold; - } - - .select-auth-box-desc { - font-size: 14px; - } - - .pf-l-stack { - flex-basis: 100%; - } -} -/* End of IE11 workaround for select-authenticator screen */ - -.select-auth-box-arrow{ - display: flex; - align-items: center; - margin-right: 2rem; -} - -.select-auth-box-icon{ - display: flex; - flex: 0 0 2em; - justify-content: center; - margin-right: 1rem; - margin-left: 3rem; -} - -.select-auth-box-parent{ - border-top: 1px solid var(--pf-global--palette--black-200); - padding-top: 1rem; - padding-bottom: 1rem; - cursor: pointer; -} - -.select-auth-box-parent:hover{ - background-color: #f7f8f8; -} - -.select-auth-container { - padding-bottom: 0px !important; -} - -.select-auth-box-headline { - font-size: var(--pf-global--FontSize--md); - color: var(--pf-global--primary-color--100); - font-weight: bold; -} - -.select-auth-box-desc { - font-size: var(--pf-global--FontSize--sm); -} - -.card-pf { - margin: 0 auto; - box-shadow: var(--pf-global--BoxShadow--lg); - padding: 0 20px; - max-width: 500px; - border-top: 4px solid; - border-color: #0066CC; /* default - IE compatibility */ - border-color: var(--pf-global--primary-color--100); -} - -/*phone*/ -@media (max-width: 767px) { - .login-pf-page .card-pf { - max-width: none; - margin-left: 0; - margin-right: 0; - padding-top: 0; - border-top: 0; - box-shadow: 0 0; - } - - .kc-social-grid { - grid-column-end: 12; - --pf-l-grid__item--GridColumnEnd: span 12; - } - - .kc-social-grid .kc-social-icon-text { - left: -15px; - } -} - -.login-pf-page .login-pf-signup { - font-size: 15px; - color: #72767b; -} -#kc-content-wrapper .row { - margin-left: 0; - margin-right: 0; -} - -.login-pf-page.login-pf-page-accounts { - margin-left: auto; - margin-right: auto; -} - -.login-pf-page .btn-primary { - margin-top: 0; -} - -.login-pf-page .list-view-pf .list-group-item { - border-bottom: 1px solid #ededed; -} - -.login-pf-page .list-view-pf-description { - width: 100%; -} - -#kc-form-login div.form-group:last-of-type, -#kc-register-form div.form-group:last-of-type, -#kc-update-profile-form div.form-group:last-of-type { - margin-bottom: 0px; -} - -.no-bottom-margin { - margin-bottom: 0; -} - -#kc-back { - margin-top: 5px; -} diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/css/tile.css b/distro/docker-compose/keycloak/apicurio/login/resources/css/tile.css deleted file mode 100644 index 62c2a932a..000000000 --- a/distro/docker-compose/keycloak/apicurio/login/resources/css/tile.css +++ /dev/null @@ -1,207 +0,0 @@ -/*Internet Explorer 11 compatibility workaround - IE does not support CSS variables */ - -@media all and (-ms-high-contrast: none), -(-ms-high-contrast: active) { - .pf-c-tile { - position: relative; - display: -ms-inline-grid; - display: inline-grid; - padding: 1.5rem 1.5rem 1.5rem 1.5rem; - margin-bottom: 0.25rem; - text-align: center; - cursor: pointer; - background-color: #fff; - grid-template-rows: -webkit-min-content; - -ms-grid-rows: -webkit-min-content; - -ms-grid-rows: min-content; - grid-template-rows: min-content; - } - .pf-c-tile::before { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - pointer-events: none; - content: ""; - border: 1px solid #d2d2d2; - border-radius: 3px; - } - .pf-c-tile:hover { - border: 1px solid #06c; - border-radius: 3px; - } - .pf-c-tile:hover .pf-c-tile__title, - .pf-c-tile:hover .pf-c-tile__icon { - color: #06c; - } - .pf-c-tile__input:checked + .pf-c-tile .pf-c-tile__title, - .pf-c-tile__input:checked + .pf-c-tile .pf-c-tile__icon { - color: #06c; - } - .pf-c-tile__input:checked + .pf-c-tile { - border: 2px solid #06c; - border-radius: 3px; - } - .pf-c-tile.pf-m-disabled { - pointer-events: none; - } - .pf-c-tile__header { - display: flex; - align-items: center; - justify-content: center; - } - .pf-c-tile__header.pf-m-stacked { - flex-direction: column; - justify-content: initial; - } - .pf-c-tile__header.pf-m-stacked .pf-c-tile__icon { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0.25rem; - } - .pf-c-tile__title { - color: #6a6e73; - } - .pf-c-tile__body { - font-size: 0.75rem; - color: #6a6e73; - } - .pf-c-tile__icon { - margin-right: 0.5rem; - font-size: 1.5rem; - color: #6a6e73; - } -} - - -/*End of the IE11 workaround*/ - -.pf-c-tile { - --pf-c-tile--PaddingTop: var(--pf-global--spacer--lg); - --pf-c-tile--PaddingRight: var(--pf-global--spacer--lg); - --pf-c-tile--PaddingBottom: var(--pf-global--spacer--lg); - --pf-c-tile--PaddingLeft: var(--pf-global--spacer--lg); - --pf-c-tile--BackgroundColor: var(--pf-global--BackgroundColor--100); - --pf-c-tile--before--BorderColor: var(--pf-global--BorderColor--100); - --pf-c-tile--before--BorderWidth: var(--pf-global--BorderWidth--sm); - --pf-c-tile--before--BorderRadius: var(--pf-global--BorderRadius--sm); - --pf-c-tile--hover--before--BorderColor: var(--pf-global--primary-color--100); - --pf-c-tile--m-selected--before--BorderWidth: var(--pf-global--BorderWidth--md); - --pf-c-tile--m-selected--before--BorderColor: var(--pf-global--primary-color--100); - --pf-c-tile--focus--before--BorderWidth: var(--pf-global--BorderWidth--md); - --pf-c-tile--focus--before--BorderColor: var(--pf-global--primary-color--100); - --pf-c-tile--m-disabled--BackgroundColor: var(--pf-global--disabled-color--300); - --pf-c-tile__title--Color: var(--pf-global--Color--100); - --pf-c-tile--hover__title--Color: var(--pf-global--primary-color--100); - --pf-c-tile--m-selected__title--Color: var(--pf-global--primary-color--100); - --pf-c-tile--focus__title--Color: var(--pf-global--primary-color--100); - --pf-c-tile--m-disabled__title--Color: var(--pf-global--disabled-color--100); - --pf-c-tile__icon--MarginRight: var(--pf-global--spacer--sm); - --pf-c-tile__icon--FontSize: var(--pf-global--icon--FontSize--md); - --pf-c-tile__icon--Color: var(--pf-global--Color--100); - --pf-c-tile--hover__icon--Color: var(--pf-global--primary-color--100); - --pf-c-tile--m-selected__icon--Color: var(--pf-global--primary-color--100); - --pf-c-tile--m-disabled__icon--Color: var(--pf-global--disabled-color--100); - --pf-c-tile--focus__icon--Color: var(--pf-global--primary-color--100); - --pf-c-tile__header--m-stacked__icon--MarginBottom: var(--pf-global--spacer--xs); - --pf-c-tile__header--m-stacked__icon--FontSize: var(--pf-global--icon--FontSize--lg); - --pf-c-tile--m-display-lg__header--m-stacked__icon--FontSize: var(--pf-global--icon--FontSize--xl); - --pf-c-tile__body--Color: var(--pf-global--Color--100); - --pf-c-tile__body--FontSize: var(--pf-global--FontSize--xs); - --pf-c-tile--m-disabled__body--Color: var(--pf-global--disabled-color--100); - position: relative; - display: inline-grid; - padding: var(--pf-c-tile--PaddingTop) var(--pf-c-tile--PaddingRight) var(--pf-c-tile--PaddingBottom) var(--pf-c-tile--PaddingLeft); - margin-bottom: 0.25rem; - text-align: center; - cursor: pointer; - background-color: var(--pf-c-tile--BackgroundColor); - grid-template-rows: min-content; - overflow: hidden; -} - -.pf-c-tile::before { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - pointer-events: none; - content: ""; - border: var(--pf-c-tile--before--BorderWidth) solid var(--pf-c-tile--before--BorderColor); - border-radius: var(--pf-c-tile--before--BorderRadius); -} - -.pf-c-tile:hover { - --pf-c-tile__title--Color: var(--pf-c-tile--hover__title--Color); - --pf-c-tile__icon--Color: var(--pf-c-tile--hover__icon--Color); - --pf-c-tile--before--BorderColor: var(--pf-c-tile--hover--before--BorderColor); -} - -.pf-c-tile__input:checked + .pf-c-tile { - --pf-c-tile__title--Color: var(--pf-c-tile--m-selected__title--Color); - --pf-c-tile__icon--Color: var(--pf-c-tile--m-selected__icon--Color); - --pf-c-tile--before--BorderWidth: var(--pf-c-tile--m-selected--before--BorderWidth); - --pf-c-tile--before--BorderColor: var(--pf-c-tile--m-selected--before--BorderColor); -} - -.pf-c-tile:focus { - --pf-c-tile__title--Color: var(--pf-c-tile--focus__title--Color); - --pf-c-tile__icon--Color: var(--pf-c-tile--focus__icon--Color); - --pf-c-tile--before--BorderWidth: var(--pf-c-tile--focus--before--BorderWidth); - --pf-c-tile--before--BorderColor: var(--pf-c-tile--focus--before--BorderColor); -} - -.pf-c-tile.pf-m-disabled { - --pf-c-tile--BackgroundColor: var(--pf-c-tile--m-disabled--BackgroundColor); - --pf-c-tile__title--Color: var(--pf-c-tile--m-disabled__title--Color); - --pf-c-tile__body--Color: var(--pf-c-tile--m-disabled__body--Color); - --pf-c-tile--before--BorderWidth: 0; - --pf-c-tile__icon--Color: var(--pf-c-tile--m-disabled__icon--Color); - pointer-events: none; -} - -.pf-c-tile.pf-m-display-lg .pf-c-tile__header.pf-m-stacked { - --pf-c-tile__icon--FontSize: var(--pf-c-tile--m-display-lg__header--m-stacked__icon--FontSize); -} - -.pf-c-tile__input { - display: none; -} - -.pf-c-tile__header { - display: flex; - align-items: center; - justify-content: center; -} - -.pf-c-tile__header.pf-m-stacked { - --pf-c-tile__icon--MarginRight: 0; - --pf-c-tile__icon--FontSize: var(--pf-c-tile__header--m-stacked__icon--FontSize); - flex-direction: column; - justify-content: initial; -} - -.pf-c-tile__header.pf-m-stacked .pf-c-tile__icon { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: var(--pf-c-tile__header--m-stacked__icon--MarginBottom); -} - -.pf-c-tile__title { - color: var(--pf-c-tile__title--Color); -} - -.pf-c-tile__body { - font-size: var(--pf-c-tile__body--FontSize); - color: var(--pf-c-tile__body--Color); -} - -.pf-c-tile__icon { - margin-right: var(--pf-c-tile__icon--MarginRight); - font-size: var(--pf-c-tile__icon--FontSize); - color: var(--pf-c-tile__icon--Color); -} \ No newline at end of file diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_200px.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_200px.png deleted file mode 100644 index 1718b9716..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_200px.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_450px.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_450px.png deleted file mode 100644 index f7185deef..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_darkbkg_450px.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_sm.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_sm.png deleted file mode 100644 index 71767de7d..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/apicurio_logo_sm.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/favicon.ico b/distro/docker-compose/keycloak/apicurio/login/resources/img/favicon.ico deleted file mode 100644 index 795c6b51d..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/favicon.ico and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-arrow-down.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-arrow-down.png deleted file mode 100644 index 6f2d9d2ae..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-arrow-down.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-sign.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-sign.png deleted file mode 100644 index 0dd500445..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-error-sign.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-arrow-down.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-arrow-down.png deleted file mode 100644 index 03cc0c45d..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-arrow-down.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-sign.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-sign.png deleted file mode 100644 index 640bd71ca..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-success-sign.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-arrow-down.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-arrow-down.png deleted file mode 100644 index 6f2d9d2ae..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-arrow-down.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-sign.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-sign.png deleted file mode 100644 index f9392a356..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/feedback-warning-sign.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/jumbo-bg.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/jumbo-bg.png deleted file mode 100644 index 877a4c3b8..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/jumbo-bg.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-bg.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-bg.png deleted file mode 100644 index 4004db442..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-bg.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo-text.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo-text.png deleted file mode 100644 index 63f3b9f87..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo-text.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo.png b/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo.png deleted file mode 100644 index ffa5b0bf9..000000000 Binary files a/distro/docker-compose/keycloak/apicurio/login/resources/img/keycloak-logo.png and /dev/null differ diff --git a/distro/docker-compose/keycloak/apicurio/login/theme.properties b/distro/docker-compose/keycloak/apicurio/login/theme.properties deleted file mode 100644 index fd02c70f3..000000000 --- a/distro/docker-compose/keycloak/apicurio/login/theme.properties +++ /dev/null @@ -1,130 +0,0 @@ -parent=base -import=common/keycloak - -styles=css/login.css css/tile.css -stylesCommon=web_modules/@patternfly/react-core/dist/styles/base.css web_modules/@patternfly/react-core/dist/styles/app.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css - -meta=viewport==width=device-width,initial-scale=1 - -kcHtmlClass=login-pf -kcLoginClass=login-pf-page - -kcLogoLink=http://www.keycloak.org - -kcLogoClass=login-pf-brand - -kcContainerClass=container-fluid -kcContentClass=col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3 col-lg-6 col-lg-offset-3 - -kcHeaderClass=login-pf-page-header -kcFeedbackAreaClass=col-md-12 -kcLocaleClass=col-xs-12 col-sm-1 - -## Locale -kcLocaleMainClass=pf-c-dropdown -kcLocaleListClass=pf-c-dropdown__menu pf-m-align-right -kcLocaleItemClass=pf-c-dropdown__menu-item - -## Alert -kcAlertClass=pf-c-alert pf-m-inline -kcAlertTitleClass=pf-c-alert__title kc-feedback-text - -kcFormAreaClass=col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2 -kcFormCardClass=card-pf - -### Social providers -kcFormSocialAccountListClass=pf-c-login__main-footer-links kc-social-links -kcFormSocialAccountListGridClass=pf-l-grid kc-social-grid -kcFormSocialAccountListButtonClass=pf-c-button pf-m-control pf-m-block kc-social-item kc-social-gray -kcFormSocialAccountGridItem=pf-l-grid__item - -kcFormSocialAccountNameClass=kc-social-provider-name -kcFormSocialAccountLinkClass=pf-c-login__main-footer-links-item-link -kcFormSocialAccountSectionClass=kc-social-section kc-social-gray -kcFormHeaderClass=login-pf-header - -kcFeedbackErrorIcon=fa fa-fw fa-exclamation-circle -kcFeedbackWarningIcon=fa fa-fw fa-exclamation-triangle -kcFeedbackSuccessIcon=fa fa-fw fa-check-circle -kcFeedbackInfoIcon=fa fa-fw fa-info-circle - -kcResetFlowIcon=pficon pficon-arrow fa -kcWebAuthnKeyIcon=pficon pficon-key - -kcFormClass=form-horizontal -kcFormGroupClass=form-group -kcFormGroupErrorClass=has-error -kcLabelClass=pf-c-form__label pf-c-form__label-text -kcLabelWrapperClass=col-xs-12 col-sm-12 col-md-12 col-lg-12 -kcInputClass=pf-c-form-control -kcInputErrorMessageClass=pf-c-form__helper-text pf-m-error required kc-feedback-text -kcInputWrapperClass=col-xs-12 col-sm-12 col-md-12 col-lg-12 -kcFormOptionsClass=col-xs-12 col-sm-12 col-md-12 col-lg-12 -kcFormButtonsClass=col-xs-12 col-sm-12 col-md-12 col-lg-12 -kcFormSettingClass=login-pf-settings -kcTextareaClass=form-control -kcSignUpClass=login-pf-signup - - -kcInfoAreaClass=col-xs-12 col-sm-4 col-md-4 col-lg-5 details - -##### css classes for form buttons -# main class used for all buttons -kcButtonClass=pf-c-button -# classes defining priority of the button - primary or default (there is typically only one priority button for the form) -kcButtonPrimaryClass=pf-m-primary -kcButtonDefaultClass=btn-default -# classes defining size of the button -kcButtonLargeClass=btn-lg -kcButtonBlockClass=pf-m-block - -##### css classes for input -kcInputLargeClass=input-lg - -##### css classes for form accessability -kcSrOnlyClass=sr-only - -##### css classes for select-authenticator form -kcSelectAuthListClass=pf-l-stack select-auth-container -kcSelectAuthListItemClass=pf-l-stack__item select-auth-box-parent pf-l-split -kcSelectAuthListItemIconClass=pf-l-split__item select-auth-box-icon -kcSelectAuthListItemBodyClass=pf-l-split__item pf-l-stack -kcSelectAuthListItemHeadingClass=pf-l-stack__item select-auth-box-headline pf-c-title -kcSelectAuthListItemDescriptionClass=pf-l-stack__item select-auth-box-desc -kcSelectAuthListItemFillClass=pf-l-split__item pf-m-fill -kcSelectAuthListItemArrowClass=pf-l-split__item select-auth-box-arrow -kcSelectAuthListItemArrowIconClass=fa fa-angle-right fa-lg - -##### css classes for the authenticators -kcAuthenticatorDefaultClass=fa list-view-pf-icon-lg -kcAuthenticatorPasswordClass=fa fa-unlock list-view-pf-icon-lg -kcAuthenticatorOTPClass=fa fa-mobile list-view-pf-icon-lg -kcAuthenticatorWebAuthnClass=fa fa-key list-view-pf-icon-lg -kcAuthenticatorWebAuthnPasswordlessClass=fa fa-key list-view-pf-icon-lg - -##### css classes for the OTP Login Form -kcLoginOTPListClass=pf-c-tile -kcLoginOTPListInputClass=pf-c-tile__input -kcLoginOTPListItemHeaderClass=pf-c-tile__header -kcLoginOTPListItemIconBodyClass=pf-c-tile__icon -kcLoginOTPListItemIconClass=fa fa-mobile -kcLoginOTPListItemTitleClass=pf-c-tile__title - -##### css classes for identity providers logos -kcCommonLogoIdP=kc-social-provider-logo kc-social-gray - -## Social -kcLogoIdP-facebook=fa fa-facebook -kcLogoIdP-google=fa fa-google -kcLogoIdP-github=fa fa-github -kcLogoIdP-linkedin=fa fa-linkedin -kcLogoIdP-instagram=fa fa-instagram -## windows instead of microsoft - not included in PF4 -kcLogoIdP-microsoft=fa fa-windows -kcLogoIdP-bitbucket=fa fa-bitbucket -kcLogoIdP-gitlab=fa fa-gitlab -kcLogoIdP-paypal=fa fa-paypal -kcLogoIdP-stackoverflow=fa fa-stack-overflow -kcLogoIdP-twitter=fa fa-twitter -kcLogoIdP-openshift-v4=pf-icon pf-icon-openshift -kcLogoIdP-openshift-v3=pf-icon pf-icon-openshift \ No newline at end of file diff --git a/distro/docker-compose/setup.sh b/distro/docker-compose/setup.sh index 76292ea0c..8681dbbe8 100755 --- a/distro/docker-compose/setup.sh +++ b/distro/docker-compose/setup.sh @@ -15,15 +15,32 @@ then export P=/apicurio fi -AS_DB_PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6) +KC_PASSWORD=$(LC_CTYPE=C tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c6) +AS_DB_PASSWORD=$(LC_CTYPE=C tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c6) -sed 's/$HOST/'"$HOST_IP"'/g' $P/.env.template > $P/tmp; mv $P/tmp $P/.env +SERVICE_CLIENT_SECRET=$(uuidgen) +sed 's/$HOST/'"localhost"'/g' $P/.env.template > $P/tmp; mv $P/tmp $P/.env + +sed 's/$KC_PASSWORD/'"$KC_PASSWORD"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env sed 's/$AS_DB_PASSWORD/'"$AS_DB_PASSWORD"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env +sed 's/$SERVICE_CLIENT_SECRET/'"$SERVICE_CLIENT_SECRET"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env sed 's/$DB_TYPE/'"postgresql9"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env sed 's/$DB_DRIVER/'"postgresql"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env -sed 's/$DB_CONN_URL/'"jdbc:postgresql:\\/\\/apicurio-studio-db\\/apicuriodb"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env +sed 's/$DB_CONN_URL/'"jdbc:postgresql:\\/\\/localhost\\/apicuriodb"'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env +sed 's/$API_VARIANT/'""'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env +sed 's/$WS_VARIANT/'""'/g' $P/.env > $P/tmp; mv $P/tmp $P/.env + +sed 's/$HOST/'"localhost"'/g' $P/config/keycloak/apicurio-realm.json.template > $P/config/keycloak/apicurio-realm.json +sed 's/$HOST/'"localhost"'/g' $P/config/keycloak/microcks-realm.json.template > $P/config/keycloak/microcks-realm.json.tmp +sed 's/$SERVICE_CLIENT_SECRET/'"$SERVICE_CLIENT_SECRET"'/g' $P/config/keycloak/microcks-realm.json.tmp > $P/config/keycloak/microcks-realm.json + +rm -rf $P/config/keycloak/microcks-realm.json.tmp +echo "Keycloak username: admin" +echo "Keycloak password: $KC_PASSWORD" echo "" -echo "Apicurio Studio URL: $HOST_IP:8093" +echo "Keycloak URL: localhost:8090" +echo "Apicurio Studio URL: localhost:8093" +echo "Microcks URL: localhost:8900" diff --git a/distro/docker-compose/start-postgresql-environment.sh b/distro/docker-compose/start-postgresql-environment.sh index 0d9cb7975..4e0ad3ed4 100755 --- a/distro/docker-compose/start-postgresql-environment.sh +++ b/distro/docker-compose/start-postgresql-environment.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker-compose -f docker-compose.apicurio.yml -f docker-compose-as-postgre.yml up \ No newline at end of file +docker-compose -f docker-compose.apicurio.yml -f docker-compose.microcks.yml up \ No newline at end of file