OpenRemote White Label Custom Deplyment Help

Hello there! i am just new to OpenRemote and learning with this great open source IoT platform. But afraid to say that i am unable to make any white label settings through custom deployment on this platform as per it has mentioned to do. I have been gone through every possible tutorial regarding this from OpenRemote including with YouTube video on this, but didn’t get any clear detailed explanation how to do this through custom deployment and nothing happened to changed/worked on the platform with logos and texts. Any further help to fix this issue would be appreciated a lot. Thanks.

Hi @kpin404 and welcome to the forum
Please share your manager_config.json and also

tree deployment

Let’s make sure everything is in place

Hello pcr! Thank you very much for your prompt feedback. I really appeciated.

Actually, i have followed openreomte YouTube video How to: white labeling of your free open source IoT platform - YouTube How to: white labeling of your free open source IoT platform, but sorry to say that i didn’t work at all. Herein the manager_config.json file:

"realms": {
    "default": {
      "appTitle": "ACME IoT",
      "headers": [
        "map", "assets", "rules", "insights", "language", "users", "roles", "account", "logs", "logout"
      ],
      "styles": ":host > * {--or-app-color2: #F9F9F9; --or-app-color3: #22211f; --or-app-color4: #1b5630; --or-app-color5: #CCCCCC;}",
      "logo": "/images/logo.png",
      "logoMobile": "/images/logo-mobile.png",
      "favicon": "/images/favicon.png",
      "language": "en"
    },
    "master": {
      "appTitle": "ACME Master",
      "styles": ":host > * {--or-app-color2: #F9F9F9; --or-app-color3: #22211f; --or-app-color4: #275582; --or-app-color5: #CCCCCC;}",
      "logo": "/images/logo.png",
      "logoMobile": "/images/logo-mobile.png",
      "favicon": "/images/logo-favicon.png",
      "language": "en"
    },
    "clienta": {
      "appTitle": "Client A",
      "styles": ":host > * {--or-app-color2: #F9F9F9; --or-app-color3: #22211f; --or-app-color4: #275582; --or-app-color5: #CCCCCC;}",
      "logo": "/images/clienta-logo.png",
      "logoMobile": "/images/clienta-logoMobile.png",
      "favicon": "/images/clienta-favicon.png",
      "language": "de"
    }
  }
}

docker-compose.yml file code:

# OpenRemote v3
#
# Profile that runs the stack by default on https://localhost using a self-signed SSL certificate,
# but optionally on https://$OR_HOSTNAME with an auto generated SSL certificate from Letsencrypt.
#
# It is configured to use the AWS logging driver.
#
version: '2.4'

volumes:
  proxy-data:
  manager-data:
  postgresql-data:

services:

  proxy:
    image: openremote/proxy:${PROXY_VERSION:-latest}
    restart: always
    depends_on:
      manager:
        condition: service_healthy
    ports:
      - "80:80"
      - "${OR_SSL_PORT:-443}:443"
      - "8883:8883"
    volumes:
      - proxy-data:/deployment
    environment:
      LE_EMAIL: ${OR_EMAIL_ADMIN:-}
      DOMAINNAME: ${OR_HOSTNAME:-localhost}
      DOMAINNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
      # USE A CUSTOM PROXY CONFIG - COPY FROM https://raw.githubusercontent.com/openremote/proxy/main/haproxy.cfg
      #HAPROXY_CONFIG: '/data/proxy/haproxy.cfg'

  postgresql:
    restart: always
    image: openremote/postgresql:${POSTGRESQL_VERSION:-latest}
    volumes:
      - postgresql-data:/var/lib/postgresql/data
      - manager-data:/storage

  keycloak:
    restart: always
    image: openremote/keycloak:${KEYCLOAK_VERSION:-latest}
    depends_on:
      postgresql:
        condition: service_healthy
    volumes:
      - ./deployment:/deployment
    environment:
      KEYCLOAK_ADMIN_PASSWORD: ${OR_ADMIN_PASSWORD:-secret}
      KC_HOSTNAME: ${OR_HOSTNAME:-localhost}
      KC_HOSTNAME_PORT: ${OR_SSL_PORT:--1}


  manager:
#    privileged: true
    restart: always
    image: openremote/manager:${MANAGER_VERSION:-latest}
    depends_on:
      keycloak:
        condition: service_healthy
    environment:
      OR_SETUP_TYPE:
      OR_ADMIN_PASSWORD:
      OR_SETUP_RUN_ON_RESTART:
      OR_EMAIL_HOST:
      OR_EMAIL_USER:
      OR_EMAIL_PASSWORD:
      OR_EMAIL_X_HEADERS:
      OR_EMAIL_FROM:
      OR_EMAIL_ADMIN:
      OR_HOSTNAME: ${OR_HOSTNAME:-localhost}
      OR_ADDITIONAL_HOSTNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
      OR_SSL_PORT: ${OR_SSL_PORT:--1}
      OR_DEV_MODE: ${OR_DEV_MODE:-false}

      # The following variables will configure the demo
      OR_FORECAST_SOLAR_API_KEY:
      OR_OPEN_WEATHER_API_APP_ID:
      OR_SETUP_IMPORT_DEMO_AGENT_KNX:
      OR_SETUP_IMPORT_DEMO_AGENT_VELBUS:
    volumes:
      - manager-data:/storage

Tree deployment:
Local Disk (C:)/openremote/deployment/manager/app/images,manager_config.json

Hi @kpin404
I think your missing something in the volumes at the end?

    volumes:
      - temp-data:/tmp
      - ./deployment:/deployment
      - manager-data:/storage

Hello @pcr You mean i have to add your provided code at the end in docker-compose.yml file? i am a bit confused between docker-compose.yml file and manager_config.json file, which one to edit and why to create manager_config.json file? Thanks.

HI,
You need to add - ./deployment:/deployment at manager volume (yml file) then pull and up image.
and if you add - temp-data:/tmp at manager volume then you need to add same at top of volume section .

you can configure same from ui also(manager_config).

Hello @apurba Thank you for keep assisting. I appreciate. Please allow me sometime to work on it again and update with the same. Thanks.

Hello @apurba you mean to add like this as i have done in yml file below:

# OpenRemote v3
#
# Profile that runs the stack by default on https://localhost using a self-signed SSL certificate,
# but optionally on https://$OR_HOSTNAME with an auto generated SSL certificate from Letsencrypt.
#
# It is configured to use the AWS logging driver.
#
version: '2.4'

volumes:
  proxy-data:
  manager-data:
  postgresql-data:
- temp-data:/tmp

services:

  proxy:
    image: openremote/proxy:${PROXY_VERSION:-latest}
    restart: always
    depends_on:
      manager:
        condition: service_healthy
    ports:
      - "80:80"
      - "${OR_SSL_PORT:-443}:443"
      - "8883:8883"
    volumes:
      - proxy-data:/deployment
    environment:
      LE_EMAIL: ${OR_EMAIL_ADMIN:-}
      DOMAINNAME: ${OR_HOSTNAME:-localhost}
      DOMAINNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
      # USE A CUSTOM PROXY CONFIG - COPY FROM https://raw.githubusercontent.com/openremote/proxy/main/haproxy.cfg
      #HAPROXY_CONFIG: '/data/proxy/haproxy.cfg'

  postgresql:
    restart: always
    image: openremote/postgresql:${POSTGRESQL_VERSION:-latest}
    volumes:
      - postgresql-data:/var/lib/postgresql/data
      - manager-data:/storage

  keycloak:
    restart: always
    image: openremote/keycloak:${KEYCLOAK_VERSION:-latest}
    depends_on:
      postgresql:
        condition: service_healthy
    volumes:
      - ./deployment:/deployment
    environment:
      KEYCLOAK_ADMIN_PASSWORD: ${OR_ADMIN_PASSWORD:-secret}
      KC_HOSTNAME: ${OR_HOSTNAME:-localhost}
      KC_HOSTNAME_PORT: ${OR_SSL_PORT:--1}


  manager:
#    privileged: true
    restart: always
    image: openremote/manager:${MANAGER_VERSION:-latest}
    depends_on:
      keycloak:
        condition: service_healthy
    environment:
      OR_SETUP_TYPE:
      OR_ADMIN_PASSWORD:
      OR_SETUP_RUN_ON_RESTART:
      OR_EMAIL_HOST:
      OR_EMAIL_USER:
      OR_EMAIL_PASSWORD:
      OR_EMAIL_X_HEADERS:
      OR_EMAIL_FROM:
      OR_EMAIL_ADMIN:
      OR_HOSTNAME: ${OR_HOSTNAME:-localhost}
      OR_ADDITIONAL_HOSTNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
      OR_SSL_PORT: ${OR_SSL_PORT:--1}
      OR_DEV_MODE: ${OR_DEV_MODE:-false}

      # The following variables will configure the demo
      OR_FORECAST_SOLAR_API_KEY:
      OR_OPEN_WEATHER_API_APP_ID:
      OR_SETUP_IMPORT_DEMO_AGENT_KNX:
      OR_SETUP_IMPORT_DEMO_AGENT_VELBUS:
    volumes:
	- temp-data:/tmp
      	- ./deployment:/deployment
      	- manager-data:/storage
      


Please have a check and let me asssist further. Thanks.

Hello @apurba after updating docker-compose.yml file and then pull and up the image i run Windows power shell to run docker-compose -p openremote up command and got a error as mentioned below:
openremoteScreenshot_12

Please have a check and let me asssist further to fix this. Thanks.

Hi @kpin404,

did you noticed, there is a “appeaerance” menu? there you can customize your openremote easily.

Hello @Denis Thank you for your feedback. I appreciated it. I just gone through this setting to check with this, but its not working at all. please have check the screenshot.

Secondly, as a tech savvy by nature i would like to do this through command prompt. Hope you understand. Thanks.

Hi @kpin404,

so, use the origin docker stack and add to the last line:

- ./deployment:/deployment

it should look like:

    volumes:
      - manager-data:/storage
      - ./deployment:/deployment

watch for the indentations.

after that: create the deployment tree…

where your docker-compose.yml is based you make this folder tree.

deployment
├───keycloak
│   └───themes
│       └───openremote
│           ├───account
│           ├───admin
│           └───login
├───manager
│   ├───app
│   ├───consoleappconfig
│   └───images
└───map

./deployment/manager/app

there you put in:

and can customize your appeaerance.

to change the keycloak themes, you have to download the theme package

there you can customize the keycloak Login, Account and Admin pages.

Hello @Denis Thank you for keep assisting me further on this. I appreciate. Please allow me sometime to workout on this and get back with an update. Thanks.

Hello,
Use This

OpenRemote v3

Profile that runs the stack by default on https://localhost using a self-signed SSL certificate,

but optionally on https://$OR_HOSTNAME with an auto generated SSL certificate from Letsencrypt.

It is configured to use the AWS logging driver.

version: ‘2.4’

volumes:
proxy-data:
manager-data:
postgresql-data:

services:

proxy:
image: openremote/proxy:${PROXY_VERSION:-latest}
restart: always
depends_on:
manager:
condition: service_healthy
ports:
- “80:80”
- “${OR_SSL_PORT:-443}:443”
- “8883:8883”
volumes:
- proxy-data:/deployment
environment:
LE_EMAIL: ${OR_EMAIL_ADMIN:-}
DOMAINNAME: ${OR_HOSTNAME:-localhost}
DOMAINNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
# USE A CUSTOM PROXY CONFIG - COPY FROM https://raw.githubusercontent.com/openremote/proxy/main/haproxy.cfg
#HAPROXY_CONFIG: ‘/data/proxy/haproxy.cfg’

postgresql:
restart: always
image: openremote/postgresql:${POSTGRESQL_VERSION:-latest}
volumes:
- postgresql-data:/var/lib/postgresql/data
- manager-data:/storage

keycloak:
restart: always
image: openremote/keycloak:${KEYCLOAK_VERSION:-latest}
depends_on:
postgresql:
condition: service_healthy
volumes:
- ./deployment:/deployment
environment:
KEYCLOAK_ADMIN_PASSWORD: ${OR_ADMIN_PASSWORD:-secret}
KC_HOSTNAME: ${OR_HOSTNAME:-localhost}
KC_HOSTNAME_PORT: ${OR_SSL_PORT:–1}

manager:

privileged: true

restart: always
image: openremote/manager:${MANAGER_VERSION:-latest}
depends_on:
  keycloak:
    condition: service_healthy
environment:
  OR_SETUP_TYPE:
  OR_ADMIN_PASSWORD:
  OR_SETUP_RUN_ON_RESTART:
  OR_EMAIL_HOST: 
  OR_EMAIL_USER: 
  OR_EMAIL_PASSWORD: 
  OR_EMAIL_X_HEADERS:
  OR_EMAIL_FROM: 
  OR_EMAIL_ADMIN:
  OR_HOSTNAME: ${OR_HOSTNAME:-localhost}
  OR_ADDITIONAL_HOSTNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
  OR_SSL_PORT: ${OR_SSL_PORT:--1}
  OR_DEV_MODE: ${OR_DEV_MODE:-false}

  # The following variables will configure the demo
  OR_FORECAST_SOLAR_API_KEY:
  OR_OPEN_WEATHER_API_APP_ID:
  OR_SETUP_IMPORT_DEMO_AGENT_KNX:
  OR_SETUP_IMPORT_DEMO_AGENT_VELBUS:
volumes:
  - manager-data:/storage
  - ./deployment:/deployment

and let me if there is any error.

Hello @Denis followed your process step-by-step and got internal server error.

Hello @apurba, Thanks for keep assisting. i am confused which one to use? Please let me clear with a step-by-step process. Thanks.

Hello @apurba uploaded your suggested code in docker-compose.yml file and nothing happened.

Hi,
pls post error log

Sorry, but this is useless. To be honest, as a tech savvy by nature you should be able to debug by yourself, you also should use the frontend provided tool to customize the appearance.

Hello @Denis Okay! Got it. I am still trying to debug it. Now first i need to fix internal server error and then continue with the debugging customization process further. I think i wouldn’t have to say tech savvy myself, it makes things more complicated and put more load to fix it again rather than just asking for how to make it work :sweat_smile: Thanks.