JupyterHub with another website

I am running a JupyterHub in a server on the internet for using in my university course. It was installed using Anaconda and following these instructions. I did all the security stuff, like using SSL. Since the server has no domain, we access using the IP directly.

Now I want to serve another website in the same server, but I don’t know how to do it. My doubts are:

  1. Is it possible to use the same service JupyterHub uses? If yes, where is it? I could not find anything like, for example, an Apache installation (which I’m used to use).
  2. If the answer is no for (1), could I use another service, like Apache? I am afraid of installing it and stating to have conflicts with JupyterHub. I have already some people using it.

I need some help, especially because I cannot stop JupyterHub for a long period of time. At least until July, when the semester ends.

Is JupyterHub accessed through https://<IP-ADDRESS>:8000? If so it sounds like JupyterHub is listening directly without an intermediate proxy such as Nginx.

Nginx or Apache will listen on port 80 (and 443 if https configured) so it should be safe to install one of them on the same server.

1 Like

Thanks for the response!
From the log file:

Proxying https://<IP-ADDRESS>:443 to (no default)
Proxy API at http://127.0.0.1:8001/api/routes
Adding route / -> http://127.0.0.1:8081
Route added / -> http://127.0.0.1:8081

So, it seems to be listening on http://127.0.0.1:8001, with a proxy from https://<IP-ADDRESS>:443, right?

Then I could change this route from “/” to something like “/jupyterhub”, and add another route like “/website” and listen from “https://<IP-ADDRESS>/website”? Does it make sense? I’ve never used a proxy like this.

I’ve never setup JupyterHub to use SSL certificates directly, but if that’s from the JupyterHub logs I expect it’s the JupyterHub configurable-http-proxy that’s listening on 443. Would you mind posting your full config, redacting any secrets?

The way I normally setup JupyterHub is to have it listen on an internal port, then install and configure Nginx myself to proxy JupyterHub and any other websites:

https://jupyterhub.readthedocs.io/en/stable/reference/config-proxy.html

To avoid downtime whilst testing you could configure Nginx to listen on some other port?