odd-jobs icon indicating copy to clipboard operation
odd-jobs copied to clipboard

Support for custom URL roots

Open ivanbakel opened this issue 3 years ago • 3 comments

I'm looking into using odd-jobs to replace a home-spun job queue implementation. The web UI is really useful, but I would like to put it behind a subpath on an auth-protected domain which I use for all my dev UIs, so that I can still access it remotely.

Currently, I using a reverse-proxy to do that - so the web UI is served on a URL like

https://my.dev.domain/jobs/

and that routes to

http://127.0.0.1:<odd-jobs-port>

However, the UI doesn't currently really support this. All of the static assets and links are broken, since they expect to be served from the URL root /, rather than the /jobs/ path. It would be great if odd-jobs would support custom URL roots, so I could use it in the above way.

ivanbakel avatar Jun 21 '21 15:06 ivanbakel

@ivanbakel I believe the code already supports this. Please take a look at the following function - https://github.com/saurabhnanda/odd-jobs/blob/ab15d8b03b0035ad2c7aecbf6faaa55aefeec88f/src/OddJobs/Endpoints.hs#L77-L83 The second argument is a function that allows you to transform the links generated by the web UI to whatever you want. This "hook" was added specifically for your use-case.

Are you starting the web UI via the default command-line? We can probably add another flag --web-ui-root-path to make this easier without having to write custom code.

saurabhnanda avatar Jul 09 '21 02:07 saurabhnanda

Good to know, thanks! I am using the default command-line settings to start the web UI, so a flag would be really useful. I'll make a PR to support doing that.

ivanbakel avatar Jul 09 '21 10:07 ivanbakel

@ivanbakel before you work on the PR, please take a look at #76 -- this might make your PR easier.

saurabhnanda avatar Jul 09 '21 14:07 saurabhnanda