Commit History

  1. Update jupyter_lab_config.py

    Verified signature
    54d7d39
  2. Update start.sh

    Verified signature
    74ba644
  3. Update Dockerfile

    Verified signature
    4bb9a18

  1. fix: move DASHBOARD_HTML to module level (was unreachable after run_app)

    6ad7c17
  2. feat: universal multi-app proxy - streaming, cookie rewrite, body URL rewrite, WS subprotocol, auto-detect dashboard

    2fb68e4
  3. fix: strip accept-encoding + install brotli to prevent 502 on multi-port proxy

    4ab4eac
  4. fix: JupyterLab base_url=/8888/ + rewrite Location headers for redirects

    a05c7e2
  5. feat: multi-port proxy - dashboard + any port routing

    8267b84
  6. perf: shared ClientSession with connection pooling + in-memory static cache

    c211f6f
  7. fix: remove environment= from supervisord to preserve HF secrets (password)

    2ad5d30
  8. fix: set SHELL=/bin/bash so arrow keys work in terminal

    1a48c86
  9. fix: show hidden files in file browser (server config + frontend override)

    fe0ff63
  10. fix: add --allow-root flag for JupyterLab running as root

    3b584fc
  11. fix: run JupyterLab as root so root_dir=/ is fully writable

    43aa492
  12. Add Node.js 20 (npm/npx) + Bun to Dockerfile⁠

    fcc8d07
  13. Set root_dir=/ so file browser + terminal can navigate entire filesystem⁠

    4c3f229
  14. cd to /data before launching JupyterLab so terminal cwd matches file browser⁠

    8324543
  15. Auto-detect ALL WebSocket upgrades (fixes /api/events/subscribe, terminals, kernels)⁠

    dd82a99
  16. Remove accidentally committed cookies.txt, add .gitignore

    3a62b4a
  17. Fix 502 on /lab: use aiohttp.ClientTimeout instead of invalid timeout_class⁠

    797c81a
  18. Fix ImportError: import WSMsgType from aiohttp (top-level), not aiohttp.client⁠

    039827e
  19. Fix proxy.py: route order (WS before catch-all), robust error handling, no type hints⁠

    345bf6a
  20. Replace nginx+flask auth with single aiohttp proxy (fix JS chunks getting HTML 302)⁠

    4e29137
  21. Fix: forward Cookie to auth_request subrequest (JupyterLab JS chunks were getting HTML 302)⁠

    b8588b9
  22. Fix redirect scheme: relative redirects, respect X-Forwarded-Proto from HF⁠

    932d6db
  23. Run supervisord as root, drop privileges per-program (fix APP_STARTING hang)⁠

    bfebeff
  24. Fix Dockerfile layer ordering + non-root nginx/supervisor paths⁠

    9a8be9e
  25. Add password gate (nginx + Flask auth) in front of token-less JupyterLab⁠

    906bfb8
  26. Add JupyterLab setup (Docker SDK, CPU)

    b41442b
  27. initial commit

    Verified signature
    a545a72