Inline bokeh Server Figures

Hey everyone,
first of all, bokeh is an amazing project and this forum and its community has already helped me a lot, so thanks to everone contributing here!

Now, I am currently developing an interactive stellar spectroscopy tool, which is supposed to run and render in Jupyter environments (Notebooks, Labs, Colab, Notebooks in VSCode, etc.). The spectroscopy part is computationally heavy, therefore I often run it on a remote computer cluster, which I access through SSH. In my current application I use a bokeh server and render it in the notebook by use of an IFrame. However, this forces me to forward the port of the bokeh server, which, if I fix it to a specific port, doesn’t allow me to use my application in more than one notebook simultaneously.

So I was wondering if I have missed a clever way of inlining a bokeh server figure without the need of port forwarding, when running on a remote machine.

Of course I have tried the standalone bokeh figures, without need of a server at all, but they don’t give me the same level of interactivity as the bokeh server.

Here is a demo of my application: https://youtu.be/LFzt-Rdk7i8
I appreciate all advice and suggestions as I am pretty new to web-applications!
Cheers!

Hi @RMHoppe I guess the need to port-forward arises solely due to the need to SSH tunnel from “inside” the cluster? I am not sure I have any great suggestions, the Bokeh server was really mostly developed with public- (or at least network-) facing deployments in mind. E.g. if you just run a Bokeh server app on a public facing server, there is generally no need for any port-forwarding at all.

Would it be possible to have the port-forwarded Bokeh server connect to a proxy/load balancer like nginx or apache on the “outside” and then the notebook embeds from the proxy URL, rather than the “direct” URL? I am not certain this would work but it seems plausible since there would only need to be one process (the proxy) connecting via the port.