jgraph / docker-drawio

Dockerized draw.io based on whichever is the most secure image at the time.
GNU General Public License v3.0
1.48k stars 359 forks source link

Issue with DRAWIO_BASE_URL #120

Closed greygoo5e closed 7 months ago

greygoo5e commented 1 year ago

Hi,

I'm currently using the docker container jgraph/drawio at sha256:c8164ceeb5bcef540f8b97b1926ba4aab1b03ba3e68bc3066a6a05f27afbb1f4 (currently latest)

I have my configuration setup running behind a reverse at a endpoint of "https://hostname/drawio"

I read through the documentation and it led me to believe that changing the variable DRAWIO_BASE_URL to be the hostname+path would result in the server hosting the application at the specified path. Unfortunately I was unable to use this variable to host the server at "https://hostname/drawio". To work around this I was able to override the server.xml file by mounting a file and setting the following:

<Context
  path="/drawio"
  docBase="draw"
>

This seemed to work fine. Unfortunately I then tried to connect the drawio application to our local gitlab instance and thats where I ran into another issue. I am seeing on gitlab it trying to navigate back to "https://hostname/" instead of "https://hostname/drawio/" and then is routed to the wrong service by the reverse.

I made sure that the Callback url in gitlab applications (both admin and user applications) is set to https://hostname/drawio/gitlab.html and has api, write_repository and read_repository permissions.

Perhaps I am still missing something small in my usage of the DRAWIO_BASE_URL variable? I have attached my deployment helm file, plus the PreConfig.js file from the running container.

PreConfig.js.txt deployment.yaml.txt

petiepooo commented 1 year ago

I am seeing the same issue. Please add a quick test to your pipeline to check for this on new releases, as I assume it was working at one point.

davidjgraph commented 11 months ago

We're going to change this in the 22.0.0 release. DRAWIO_BASE_URL will be the domain you serve the static content from only. It will only need to be set if you want the viewer and/or lightbox to be served from a specific domain.

We're adding DRAWIO_SERVER_URL. That will define the prefix for server endpoints. In the OP case that would be set to "https://hostname/drawio".