Skip to main content

jupyter-myst-build-proxy

A Jupyter server extension that serves and proxies static MyST websites.

Overview

jupyter-myst-build-proxy helps JupyterHub users development MyST-based websites. It can build the static HTML assets and serve them from a minimal python web server, allowing users to view MyST sites directly in a JupyterHub environment.

Features

  • Path-based routing: Access MyST projects at /myst-build/<project-path>/
  • On-demand building: Automatically builds MyST sites when first accessed
  • Rebuild support: Trigger rebuilds with ?rebuild=1 query parameter
  • Multiple projects: Serve different MyST projects from subdirectories
  • Error handling: Shows helpful error page when myst.yml is missing

Installation

pip install jupyter-myst-build-proxy

Usage

Basic Usage

With a jupyter application running, visit /myst-build/<project-path>/ where <project-path> is a directory containing a MyST project (with myst.yml).

Example 1: Jupyter server on localhost

http://localhost:8888/myst-build/my-documentation/

Example 2: Jupyter server on a JupyterHub

https://jupyterhub.example.edu/user/username/myst-build/my-website/

Configuration

Set the default directory using the JUPYTER_MYST_BUILD_PROXY_DIR environment variable to specify an alternative root for where the extension finds MyST projects. The default is the user's current working directory.

Rebuilding Sites

To force a rebuild of a MyST site, add ?rebuild=1 to any page URL:

http://localhost:8888/myst-build/my-documentation/?rebuild=1

This will delete the _build/html directory and regenerate the site.

Rebuild button

To have jupyter-myst-build-proxy run a post-build script which injects a "Rebuild" button into your site, set the JUPYTER_MYST_BUILD_PROXY_POSTBUILD environment variable to any value.

With this functionality enabled, users click this button instead of editing the URL to trigger a rebuild.

How It Works

  1. When you access /myst-build/<project-path>/, the extension:

    • Checks if <project-path>/myst.yml exists
    • If the site hasn't been built, runs myst build --html --ci with the appropriate BASE_URL
    • Serves the static HTML from <project-path>/_build/html/
  2. The extension uses path-based routing to ensure all assets and navigation links work correctly with the /myst-build/<project-path>/ prefix.

Requirements

  • jupyter-server-proxy >= 4.1.0
  • mystmd (MyST Markdown CLI tool)

Project Structure

jupyter-myst-build-proxy/
├── jupyter_myst_build_proxy/
│   ├── __init__.py           # Main extension setup
│   ├── static_server.py      # HTTP server for serving MyST sites
│   ├── building.html         # Building status template
│   ├── directory_browser.html # Directory browser template
│   └── logo-square.svg       # MyST logo
├── tests/                    # pytest tests
├── setup.py                  # Package configuration
└── README.md                 # This file

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_myst_build_proxy-0.6.0.tar.gz (96.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyter_myst_build_proxy-0.6.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_myst_build_proxy-0.6.0.tar.gz.

File metadata

  • Download URL: jupyter_myst_build_proxy-0.6.0.tar.gz
  • Upload date:
  • Size: 96.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jupyter_myst_build_proxy-0.6.0.tar.gz
Algorithm Hash digest
SHA256 bfe023534b2d7b520abb272bf58c7d55f98ba00b806cb2bb8f1f898957647757
MD5 fb07011a9d039e5ed08c10574e14a932
BLAKE2b-256 fca6a5ca679d7597f8015bc9ebc35a5652f69b56ecfe297674a3634419ef454d

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupyter_myst_build_proxy-0.6.0.tar.gz:

Publisher: publish.yml on ryanlovett/jupyter-myst-build-proxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jupyter_myst_build_proxy-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_myst_build_proxy-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d0038db0e9e7d5ab5375f45f6fe861e47d48d3f30b8d9c3a13b7521e19ecadb
MD5 67c525ee5c9a0092f44cb0ec9ae5903e
BLAKE2b-256 4138b743a8f19c85a200341e53b8ae868b49364b7c080eae2ba6fe153d4e07c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupyter_myst_build_proxy-0.6.0-py3-none-any.whl:

Publisher: publish.yml on ryanlovett/jupyter-myst-build-proxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 files

0.5.1

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page