Dear community members,
I kindly ask you for your help. I am struggling to run at least the very basic Openremote instance demo version, not mentioning I also tried the custom deployment with the same result. I read the wiki, I searched for hints and tips all over.
This is my docker-compose.yml
version: '3'
services:
openremote-keycloak:
image: openremote/keycloak:latest
container_name: openremote_keycloak
environment:
DB_VENDOR: postgres
DB_ADDR: <postgis host>
DB_PORT: 5432
DB_DATABASE: postgres
DB_USER: postgres
DB_PASSWORD: <postgres password>
DB_SCHEMA: public
KEYCLOAK_PASSWORD: secret
KEYCLOAK_FRONTEND_URL: https://<public domain>/auth
# without this env I saw errors in the log but it let me login, so this is not the source of the problem for sure
HTTPS_ENABLED: true
networks:
- backend
restart: always
openremote-manager:
image: openremote/manager:latest
container_name: openremote_manager
environment:
OR_ADMIN_PASSWORD: secret
OR_SETUP_TYPE: demo
OR_DEV_MODE: false
OR_SETUP_RUN_ON_RESTART: true
OR_SSL_PORT: 443
OR_HOSTNAME: <public.domain>
OR_WEBSERVER_LISTEN_HOST: 0.0.0.0
OR_WEBSERVER_LISTEN_PORT: 8080
OR_DB_VENDOR: postgres
OR_DB_HOST: <postgis host>
OR_DB_PORT: 5432
OR_DB_NAME: postgres
OR_DB_SCHEMA: openremote
OR_DB_USER: postgres
OR_DB_PASSWORD: <postgres password>
OR_IDENTITY_PROVIDER: keycloak
OR_KEYCLOAK_HOST: openremote_keycloak
OR_KEYCLOAK_PORT: 8080
KEYCLOAK_FRONTEND_URL: https:/<public domain>/auth
networks:
- backend
depends_on:
openremote-keycloak:
condition: service_healthy
restart: always
networks:
backend:
Keycloak
I am able to login to Keycloak without any issues whatsoever. Accessing the URL https://<public domain>/auth
correctly forwards me to the Keycloak homepage from where I can login.
I can login without Openremote installed with the default Keycloak login page; when Openremote is run too, I get Openremote login page and the Smartcity real is created and visible in the administration.
Manager
I am unable though to make Openremote running no matter what I try. When I go to https://<public domain>
, it forwards me to https://<public domain>/manager
as it is set by default. All I see though is a blank page.
This is the logged message visible in the docker console:
2022-07-08 15:47:19.579 WARN [WebService task-2 ] org.keycloak.adapters.KeycloakDeployment : Failed to load URLs from http://openremote_keycloak:8080/auth/realms/master/.well-known/openid-configuration
java.lang.Exception: Internal Server Error
at org.keycloak.adapters.KeycloakDeployment.getOidcConfiguration(KeycloakDeployment.java:233)
at org.keycloak.adapters.KeycloakDeployment.resolveUrls(KeycloakDeployment.java:182)
at org.keycloak.adapters.KeycloakDeployment.getAuthUrl(KeycloakDeployment.java:251)
at org.keycloak.adapters.OAuthRequestAuthenticator.getRedirectUri(OAuthRequestAuthenticator.java:175)
at org.keycloak.adapters.OAuthRequestAuthenticator.loginRedirect(OAuthRequestAuthenticator.java:213)
at org.keycloak.adapters.OAuthRequestAuthenticator.authenticate(OAuthRequestAuthenticator.java:275)
at org.keycloak.adapters.RequestAuthenticator.authenticate(RequestAuthenticator.java:138)
at org.keycloak.adapters.undertow.AbstractUndertowKeycloakAuthMech.keycloakAuthenticate(AbstractUndertowKeycloakAuthMech.java:110)
at org.keycloak.adapters.undertow.ServletKeycloakAuthMech.authenticate(ServletKeycloakAuthMech.java:92)
at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:245)
at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:268)
at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.access$100(SecurityContextImpl.java:231)
at io.undertow.security.impl.SecurityContextImpl.attemptAuthentication(SecurityContextImpl.java:125)
at io.undertow.security.impl.SecurityContextImpl.authTransition(SecurityContextImpl.java:99)
at io.undertow.security.impl.SecurityContextImpl.authenticate(SecurityContextImpl.java:92)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:55)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
at java.base/java.lang.Thread.run(Thread.java:833)
Then this is the Chrome debug console info:
It is just a demo following the instructions in the Wiki. I also tried the custom deployment and uploaded different manager_config.json
files into the /deployment
in the container folder but saw no difference at all.
Could someone please help me out running at least the demo from where I believe I could go further. At this point though I have no idea where to start.