Default Map Not Rendering Properly

Hi I need your help please :slight_smile:
Just trying to run a costumer deployment in my Mac with the manager running in a container.
Only done what’s in the wiki. Here is exactly what I done:

  • Run Docker Desktop
  • InteliJ IDE configured with InteliJ build tools as discribed in the wiki
  • git clone https://github.com/openremote/custom-project.git
  • git submodule init & git submodule update
  • chmod +x gradlew
  • ./gradlew clean installDist
  • docker-compose -f profile/dev-ui.yml build
  • docker-compose -f profile/dev-ui.yml up -d
  • Run http://localhost:8080 in Chrome and Safari

I did not touch anything inside any file.
All works as expected but the map is not rendering properly:

Then I tried so many things to make it work but all the same. No errors or logs.
Anything else I need to do? Please Help :expressionless:
Thanks

1 Like

Hi,

Glad you managed to get things up and running.

Looks like the map is working but the default included mapdata is only for a small section of Rotterdam, the mapsettings.json file generally sets the bounds of the map for different realms.

There is a wiki page explaining a bit about using your own mapdata:

Good luck,

Rich

Thanks Rich
Unfortunately is not related to the boundaries in /deployment/mapsettings.json.
You can try yourself the steps mentioned above.
I think the issue must rely on the build process. If I put the default map and default map mapsettings directly in the builded directory /deployment/build/map, the map loads normally but each time I build again I will need to drag the map and settings again to the build directory for it to work.
I’m new to Java. Could it be related to a gradle or so?

Apologies, was rushing through replying to various forum questions.

Might be stating some obvious things here but just to clarify:

When running the dev-ui.yml compose profile then the expectation is that you run the manager in an IDE (preferably IntelliJ IDEA as that’s what we generally use and gradle build tooling has some helpers to configure it nicely).

When you open the custom project in IDEA you will get a few pre-configured run configurations for running the manager backend, for custom projects you want to use the Custom Deployment run configuration which is pre-populated with the following env variables:

OR_CONSOLE_APP_CONFIG_DOCROOT=../deployment/manager/consoleappconfig
OR_CUSTOM_APP_DOCROOT=../deployment/manager/app
OR_MAP_SETTINGS_PATH=../deployment/map/mapsettings.json
OR_MAP_TILES_PATH=../deployment/map/mapdata.mbtiles

N.B. Paths are relative to the openremote directory.

So you can place a custom mapdata.mbtiles in this location and it will be loaded note that *.mbtiles is in the root .gitignore to prevent this file from being committed. Generally this file should be copied to the docker host and volume mapped into the manager container (due to its’ size).

You shouldn’t be manually putting files in the deployment/build path as this is populated by the .gradlew installDist task and then a deployment image is constructed which simply populates the deployment docker volume during first start up.

Hi Rich
Thanks for spending your time with me and so many other folks in this forum, much appreciated.
Unfortunately the map still not working.
I chose to use dev-ui.yml instead of dev-testing.yml because it was the only way I could run a custom project. Every time I run npm run serve -- --env config=..\..\..\..\deployment\manager\app I get the following error at the very end of the process:
ERROR in **unable to locate '/Volumes//custom-project/openremote/ui/app/manager/........deploymentmanagerapp' glob**
I use all as default and as instructions in the wiki. Wonder why only me having this issue.

Update:
I managed to have success running the serve command by running it with the absolute path instead, even though I verified that the relative path was correct. Anyway at least I have it running ok and the map works ok.
I just have one last question and I will leave you alone :slight_smile:
How can I generate a container for the manager I just build and put it alongside the Keycloak and Portgresql containers like in the demo?
Many thanks.

Glad to hear you made progress; don’t know what shell/terminal you were using but could be an issue with path resolution there maybe?

To build the manager container:

./gradlew clean installDist
docker build -t openremote/manager:custom ./manager/build/install/manager
MANAGER_VERSION=custom docker-compose up -d

Sorry Rich
That commands to build the manager docker container did not worked.
In reality all I want is to have the manager I just built to go inside a docker container. I see this as the next step to deploy the system somewhere, is that the right way to go?
So I presume I have the built manager folder at:custom-project/manager/build, right?
but there is no install folder nor a dockerfile there to use :confused:
The commands you mentioned worked ok in the submodule i.e. inside the “openremote” forder but that will not generate my custom one I just built.
Sorry and thank you for your patience.

When you said build the manager docker image I assumed you were modifying the code in the main openremote repo (the openremote directory/git submodule of the custom project repo).

If you are not modifying any code in the main repo then you just build the deployment image and this is then volume mapped into the stack to add your customisations (see /docker-compose.yml - you’ll need to remove the awslog references if you’re not deploying on an AWS EC2 instance).

To build the deployment image:

./gradlew clean installDist
docker build -t openremote/deployment:custom ./deployment/build

All works now! Thanks a lot.
Yes, I was suspecting that you referred to the main repo. Really confusing for a starter, sorry.
Your team done a great job with OR. Appreciated very much. :clap:

1 Like