Install jupyter-server-proxy in AoU Jupyter image#427
Conversation
The /proxy/<PORT> URL path (used to access dashboards like Streamlit, Dash, Shiny, etc.) works in non-AoU Jupyter apps but not in AoU. This is because the AoU base image does not include the jupyter-server-proxy package, which provides the reverse-proxy routing. Without it, requests to /proxy/<PORT> fall through to the default JupyterLab handler. The server-proxy-notif extension (already installed) detects listening ports and shows proxy URLs, but it checks for jupyter-server-proxy at runtime and returns empty results if missing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Ideally this should be done in https://github.com/verily-src/verily1/blob/main/workbench/app-images/images/aou-jupyter/Dockerfile but I'd also like to investigate why it's not already included |
InvestigationTraced the issue through the image chain:
Recommended fix (in
|
https://github.com/verily-src/verily1/pull/126601 Looks it is installed in the base but then got override by AoU? |
Summary
jupyter-server-proxyin the AoU Jupyter Docker image to enable/proxy/<PORT>URL routingserver-proxy-notifextension already checks for this package at runtime and will automatically start working once it's availableContext
The
/proxy/<PORT>path works in non-AoU Jupyter apps because their base images includejupyter-server-proxy. The AoU base image (app-aou-jupyter) does not include it, so requests to/proxy/<PORT>fall through to the default JupyterLab handler and the user sees the JupyterLab UI instead of their dashboard.Open question: Was
jupyter-server-proxyintentionally omitted from AoU for security/compliance reasons, or was it simply not a requirement at the time? Please confirm before merging.Test plan
jupyter-server-proxyis installed (pip show jupyter-server-proxy)python -m http.server 8050) and confirm/proxy/8050/routes correctlyserver-proxy-notiftoast notification appears for newly detected ports🤖 Generated with Claude Code