JupyterLite demo deployed to GitHub Pages 🚀

Related tags

Deep Learning demo
Overview

JupyterLite Demo

lite-badge

JupyterLite deployed as a static site to GitHub Pages, for demo purposes.

Try it in your browser

➡️ https://jupyterlite.github.io/demo

github-pages

Requirements

JupyterLite is being tested against modern web browsers:

  • Firefox 90+
  • Chromium 89+

Usage

This repository provides a demonstration of how to:

  • build a JupyterLite release using prebuilt JupyterLite assets that bundles a collection of pre-existing Jupyter notebooks as part of the distribution;
  • deploy the release to GitHub Pages.

The process is automated using Github Actions.

You can use this repository in two main ways:

  • generate a new repository from this template repository and build and deploy your own site to the corresponding Github Pages site;
  • build a release from a PR made to this repository and download the release from the created GitHub Actions artifact.

Using Your Own Repository to Build a Release and Deploy it to Github Pages

Requires Github account.

Click on "Use this template" to generate a repository of your own from this template:

template

From the Actions tab on your repository, ensure that workflows are enabled. When you make a commit to the main branch, a Github Action will run to build your JupoyterLite release and deploy it to the repository's Github Pages site. By default, the Github Pages site will be found at YOUR_GITHUB_USERNAME.github.io/YOUR_REPOSITORY-NAME. You can also check the URL from the Repository Settings tab Pages menu item.

If the deployment failed, go to "Settings - Actions - General", in the "Workflow permissions" section, check "Read and write permissions". Update files such as readme, and commit so that GitHub rebuids and re-deploys the project. Go to "Settings - Pages", choose "gh-pages" as the source.

Add any additional requirements as required to the requirements.txt file.

You can do this via the Github website by selecting the requirements.txt file, clicking to edit it, making the required changes then saving ("committing") the result to the main branch of your repository.

Modify the contents of the contents folder to include the notebooks you want to distribute as part of your distribution.

You can do this by clicking on the contents directory and dragging notebooks from your desktop onto the contents listing. Wait for the files to be uploaded and then save them ("commit" them) to the main branch of the repository.

Check that you have Github Pages enabled for your repository: from your repository Settings tab, select the Pages menu item and ensure that the source is set to gh-pages.

When you commit a file, an updated release will be built and published on the Github Pages site. Note that it may take a few minutes for the Github Pages site to be updated. Do a hard refresh on your Github Pages site in your web browser to see the new release.

Further Information and Updates

For more info, keep an eye on the JupyterLite documentation:

Deploy a new version of JupyterLite

To change the version of the prebuilt JupyterLite assets, update the jupyterlite package version in the requirements.txt file.

The requirements.txt file can also be used to add extra prebuilt ("federated") JupyterLab extensions to the deployed JupyterLite website.

Commit and push any changes. The site will be deployed on the next push to the main branch.

Development

Create a new environment:

mamba create -n jupyterlite-demo
conda activate jupyterlite-demo
pip install -r requirements.txt

Then follow the steps documented in the Configuring section.

Comments
  • xeus-kernels fail

    xeus-kernels fail

    all xeus kernels fail with the same error as https://github.com/jupyterlite/xeus-sqlite-kernel/issues/10.

    Interestingly I can locally install all of them via pip and they work without that issue

    bug 
    opened by DerThorsten 7
  • Add step to `deploy.yml` Github Action to create `all.json`

    Add step to `deploy.yml` Github Action to create `all.json`

    The current demo is hardwired to use a specific (fixed) all.json config file which itemises the files to be displayed in the file directory listing.

    To make this repo more useful as a possible template repo, from which folk can deploy their own notebook seeded demo site, a new all.json file should be created that captures the files to be listed.

    There is a fragment of Python code in JupyterLite conf.py that could be split out into a simple CLI command to achieve this: https://github.com/jtpio/jupyterlite/blob/695373748db6c5aa015224e94d4aa8679eb34ef2/docs/conf.py#L142

    To make things conventional / easier to identify which files to copy over, it might be worth having something like a content directory into which the notebook files, image files, maybe python files etc etc intended for distribution are placed.

    At the moment the Github Action only copies over *.csv and *.ipynb files: https://github.com/jtpio/jupyterlite-demo/blob/98eb9db9c3cd68e10caa0e265d9be38db9ecb30d/.github/workflows/deploy.yml#L28

    opened by psychemedia 7
  • ipywidgets fails to install in jupyterlite/demo deployment

    ipywidgets fails to install in jupyterlite/demo deployment

    Description

    I believe ipywidgets fail to install in the Jupyterlite deployment of the jupyterlite/demo repo. It was working in late July.

    This started as a discussion here: https://discourse.jupyter.org/t/miscellaneous-questions-on-the-usage-of-jupyterlite

    Reproduce

    1. Open a fresh Jupyterlite demo from https://jupyterlite.github.io/demo/lab/
    2. Create and run cell with
    import piplite
    await piplite.install(['ipywidgets'])
    
    1. It yields a ValueError: Can't find a pure Python 3 wheel for 'widgetsnbextension~=4.0'.

    Expected behavior

    ipywidgets should install fine. This is the case in the official Jupyterlite demo https://jupyterlite.readthedocs.io/en/latest/_static/lab/, so there must be some divergence between the two deployments.

    Context

    • JupyterLite version: Version 0.1.0-beta.12
    • Operating System and version: Ubuntu 22.04
    • Browser and version: Firefox 104 (as a snap from Ubuntu)
    bug 
    opened by pierre-haessig 5
  • Experiment:

    Experiment: "Quickstart"-focused README

    It took me some digging to understand a few key things I needed for a Jupyterlite "Quickstart," where my use case was basically "put some notebooks on GitHub Pages, or other static site hosting, and have them be shareable and interactive (thanks to Jupyterlite)."

    The minimal quickstart steps seem to be:

    mkdir content && cp <some notebook>.ipynb content/
    pip install jupyterlite jupyterlab
    jupyter lite build --contents content --output-dir dist
    

    At that point, dist/ is a static bundle that can be dropped anywhere, copied into an existing GitHub Pages site dir, etc.

    The jupyterlab dependency was tricky to figure out. It's required for example notebooks to show up on the frontend. Otherwise, jupyter lite build --contents content will ≈silently fail to output api/contents/all.json (which is required for example notebooks from content/ to be presented to users, cf. https://github.com/jupyterlite/jupyterlite/issues/318#issuecomment-945492049).

    Some other thoughts:

    • deploy.yml in this repo is a good template for auto-publishing via GHA, which I know is somewhat described in this README, but took me a while to find+appreciate.
    • Forking this repo to get an auto-published GitHub Pages site, with notebooks from contents/, is a powerful "Quickstart" that I didn't glean from my initial skim of relevant repos/docs.
    • A lot of this info (like the existence and structure of this demo repo) could be called out more prominently in the main jupyterlite docs (and perhaps in an example notebook in this repo / the public demo site?). Something like how-to-host-your-own-jupyterlite.ipynb, easily findable in the main demo.

    Anyway, I appreciate that the README.md in this repo is geared toward beginners; perhaps some of the above (and the README.md I wrote in this PR / my fork) could go in a quickstart.md or something?

    Thoughts welcome, I'm not actually proposing to replace the README wholesale, this is just my take on explaining a quickstart to someone who's already more proficient with Git{,Hub}.

    opened by ryan-williams 4
  • Add screencast to show how to use the template

    Add screencast to show how to use the template

    Problem

    To make it event clearier and show how to use the GitHub template.

    Suggested Improvement

    There is already a screenshot in https://github.com/jupyterlite/demo#usage.

    @martinRenou maybe we could update it and use the screencast from this tweet? https://twitter.com/martinRenou/status/1415683682036162567

    documentation 
    opened by jtpio 4
  • overrides settings of

    overrides settings of "@jupyterlab/notebook-extension:tracker" to change the rendering layout

    Hi,

    I try to configure the look and feel of the resulting embedded notebook. My (first) goal is to change the rendering layout to 'side-by-side'. Could you please explain me how to do that ? I tried several things (overrides.json, jupyter-lite.json in different folder, etc) but with no luck. I guess the closest thing I did is to add a jupyter-lite.json file in the root directory of my repo with the following content: `{

    "jupyter-lite-schema-version": 0,
    "jupyter-config-data": {
      "disabledExtensions": [
        "@jupyterlab/drawio-extension",
        "jupyterlab-kernel-spy",
        "jupyterlab-tour"
      ]
    },
    "settingsOverrides": {
         "@jupyterlab/notebook-extension:tracker": {
            "renderingLayout": "side-by-side"
         },
        "@jupyterlab/apputils-extension:palette": {"modal": false}
     }
    

    }`

    the file seems considered since the disabled extensions are actually disabled but the rendering layout is not changed :-/ the repo is here: https://github.com/jdeantoni/iiwjupylite and the resulting page here: https://jdeantoni.github.io/iiwjupylite/lab/index.html

    any help would be appreciated thanks

    bug 
    opened by jdeantoni 2
  • How to enable real-time collaboration

    How to enable real-time collaboration

    Problem

    There is no section about collaboration specific to the demo. In the jupyterlite docs, it says that it should be enabled but I can't see this on my instance which is a vanilla fork of the demo.

    I also tried to deploy my own from scratch, and the collaboration works on my machine but not when it is deployed on e.g. github pages nor gitlab pages.

    I have tried to append room=0, put a specific room number in the configuration that I then put in the url, but the two open windows don't show the other modifications.

    Suggested Improvement

    A section that says how to make real-time collaboration work

    documentation 
    opened by horaceg 2
  • Settings and Actions links in readme broken

    Settings and Actions links in readme broken

    Problem

    In the template section the links to Actions and Settings etc dont lead to the approriate repo tabs, rather to parts of the code that are then non-existent.

    so here:

    image the actions link leads to the non-existent https://github.com/jupyterlite/demo/blob/main/actions

    Suggested Improvement

    Make these links lead to the approriate https://github.com/jupyterlite/demo/actions

    documentation 
    opened by ianhi 2
  • Add jupyterlite-xeus-lua

    Add jupyterlite-xeus-lua

    Fixes https://github.com/jupyterlite/xeus-lua-kernel/issues/24

    Now that jupyterlite-xeus-lua is published to PyPI: https://pypi.org/project/jupyterlite-xeus-lua/

    cc @DerThorsten

    opened by jtpio 2
  • Make the repo compatible with Netlify

    Make the repo compatible with Netlify

    It looks like the only thing needed to make that repo automatically deployable on Netlify (for folks generating theirs with the template) is to add a runtime.txt file with the following content:

    3.7
    

    To make sure to be using Python 3.7.

    And then specify the build command in the "Deploy Settings":

    jupyter lite build --output-dir dist --debug
    

    image

    opened by jtpio 2
  • Demo notebook is misleading

    Demo notebook is misleading

    The demo notebook is misleading - when I tried running the demo locally at least, there is a lot of whitespace at the top of the notebook that makes it look like the page is blank (and broken....)

    image

    Are the line breaks in the notebook for a reason?

    image

    opened by psychemedia 2
  • dotnet core kernel and node ObservableHQ Bridge

    dotnet core kernel and node ObservableHQ Bridge

    Problem

    I would like it if we could use dotnet core kernel then display the content in html using ObservableHQ []

    Use cases:

    -dotnet-CLR -repl

    • taking advantage of dotnet DLR ,foreign code interop and CIL bytecode.
    • utilizing onnx interference runtime and deployment in most platform natively with enhanced performance .
    • cross platform native deamon/services communication protocol to bridge plugins with native messaging in client apps --automation with powershell?
    • interactive programming/learning += desktop editors in mobile through web RWD+PWA . --blazor in notebook?
    • interactive data plotting and visualization displayed in html with widget and web component .
    • [Multi-language notebooks&variable sharing] within the same notebook

    Proposed Solution

    Add an option to switch computing kernel so we cloud use dotnet libraries usage example

    Additional context

    https://nteract.io/kernels/dotnet https://github.com/nteract/nteract/tree/master/applications/jupyter-extension

    enhancement 
    opened by PrestigeDevop 0
  • Pyolite kernel stocks on [*]

    Pyolite kernel stocks on [*]

    Description

    I used your document to run a local instance of jupyterlite on port 8000 but stocks on [*], i also run your online and had the same problem. I should note that, the javascript kernel is working okay

    Browser Output
    Paste the output from your browser Javascript console here.
    
    bug 
    opened by babaee74 1
  • Provide example of how to add your own extension to the distribution

    Provide example of how to add your own extension to the distribution

    The JupyterLite demo currently shows how to add custom content to the site, as well as additional app config settings.

    It would be useful for a documented demo of how to add a custom extension, eg from a pre-built wheel.

    enhancement 
    opened by psychemedia 7
  • Automated version bump when new releases are out

    Automated version bump when new releases are out

    Problem

    For now we manually update this repo to bump the version of jupyterlite when there is a new release. For example: https://github.com/jupyterlite/demo/pull/43

    It would be great if this could be automated instead.

    Proposed Solution

    Probably just parsing and writing to requirements.txt should be enough for now.

    Additional context

    JupyterLab Desktop has a workflow to do that with JupyterLab releases: https://github.com/jupyterlab/jupyterlab-desktop/blob/master/.github/workflows/sync_lab_release.yml

    enhancement 
    opened by jtpio 0
  • Demo notebook of things that don't (yet) work

    Demo notebook of things that don't (yet) work

    Problem

    Many potential users of jupyterlite are likely to consider themselves "notebook users" rather than developers. This template repo helps provide an on-ramp to unexperienced users with a way to get started with their own deployment of jupyterlite, as well as exploring what's possible via the demo notebooks.

    Such users might be consider themselves "notebook users" rather than developers and might be frustrated if things they expect to work don't (yet) work.

    It might be useful to have a notebook of "not yet working" examples of things that folk are likely to try but that don't yet work, with workarounds if available, perhaps with a brief explanation of why they don't (yet) work.

    See also: https://github.com/jupyterlite/jupyterlite/issues/199

    Suggested Improvement

    Create a notebook with a set of "not yet working" items.

    For example:

    • %pip not available [related issue]
    • pd.read_csv() file not found; sqliite file not found etc. [related issue]
    • shell commands and line magics that make use of shell commands won't work
    documentation 
    opened by psychemedia 1
  • What happens if demo files are updated and a user has already visited the site

    What happens if demo files are updated and a user has already visited the site

    If a user has visited the site from a particular browser and then revisits the demo site at a later time, perhaps noticing from the repo that additional demo examples have been added, or original examples have been updated, how will their browser respond?

    • will new files be added to browser storage (which already has state associated with the demo URL)?
    • will updated files overwrite similarly named files in browser storage?

    How could a user "update" their local state to reflect the current repo live demo state? (I guess one way might be to run the browser as a new private browser session, but how many folk would think to do that?)

    documentation 
    opened by psychemedia 5
Owner
JupyterLite
Wasm powered Jupyter running in the browser 💡
JupyterLite
A Web API for automatic background removal using Deep Learning. App is made using Flask and deployed on Heroku.

Automatic_Background_Remover A Web API for automatic background removal using Deep Learning. App is made using Flask and deployed on Heroku. ?? https:

Gaurav 16 Oct 29, 2022
git git《Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking》(CVPR 2021) GitHub:git2] 《Masksembles for Uncertainty Estimation》(CVPR 2021) GitHub:git3]

Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking Ning Wang, Wengang Zhou, Jie Wang, and Houqiang Li Accepted by CVPR

NingWang 236 Dec 22, 2022
Discover hidden deepweb pages

DeepWeb Scapper Att: Demo version An simple script to scrappe deepweb to find pages. Will return if any of those exists and will save on a file. You s

Héber Júlio 77 Oct 2, 2022
Code, Data and Demo for Paper: Controllable Generation from Pre-trained Language Models via Inverse Prompting

InversePrompting Paper: Controllable Generation from Pre-trained Language Models via Inverse Prompting Code: The code is provided in the "chinese_ip"

THUDM 101 Dec 16, 2022
Demo code for paper "Learning optical flow from still images", CVPR 2021.

Depthstillation Demo code for "Learning optical flow from still images", CVPR 2021. [Project page] - [Paper] - [Supplementary] This code is provided t

null 130 Dec 25, 2022
Visualization toolkit for neural networks in PyTorch! Demo -->

FlashTorch A Python visualization toolkit, built with PyTorch, for neural networks in PyTorch. Neural networks are often described as "black box". The

Misa Ogura 692 Dec 29, 2022
OCTIS: Comparing Topic Models is Simple! A python package to optimize and evaluate topic models (accepted at EACL2021 demo track)

OCTIS : Optimizing and Comparing Topic Models is Simple! OCTIS (Optimizing and Comparing Topic models Is Simple) aims at training, analyzing and compa

MIND 478 Jan 1, 2023
An implementation demo of the ICLR 2021 paper Neural Attention Distillation: Erasing Backdoor Triggers from Deep Neural Networks in PyTorch.

Neural Attention Distillation This is an implementation demo of the ICLR 2021 paper Neural Attention Distillation: Erasing Backdoor Triggers from Deep

Yige-Li 84 Jan 4, 2023
Demo project for real time anomaly detection using kafka and python

kafkaml-anomaly-detection Project for real time anomaly detection using kafka and python It's assumed that zookeeper and kafka are running in the loca

Rodrigo Arenas 36 Dec 12, 2022
Demo for Real-time RGBD-based Extended Body Pose Estimation paper

Real-time RGBD-based Extended Body Pose Estimation This repository is a real-time demo for our paper that was published at WACV 2021 conference The ou

Renat Bashirov 118 Dec 26, 2022
This demo showcase the use of onnxruntime-rs with a GPU on CUDA 11 to run Bert in a data pipeline with Rust.

Demo BERT ONNX pipeline written in rust This demo showcase the use of onnxruntime-rs with a GPU on CUDA 11 to run Bert in a data pipeline with Rust. R

Xavier Tao 14 Dec 17, 2022
Plaything for Autistic Children (demo for PaddlePaddle/Wechaty/Mixlab project)

星星的孩子 - 一款为孤独症孩子设计的聊天机器人游戏 孤独症儿童是目前常常被忽视的一类群体。他们有着类似性格内向的特征,实际却受着广泛性发育障碍的折磨。 项目背景 这类儿童在与人交往时存在着沟通障碍,其特点表现在: 社交交流差,互动障碍明显 认知能力有限,被动认知 兴趣狭窄,重复刻板,缺乏变化和想象

Tianyi Pan 35 Nov 24, 2022
Industrial knn-based anomaly detection for images. Visit streamlit link to check out the demo.

Industrial KNN-based Anomaly Detection ⭐ Now has streamlit support! ⭐ Run $ streamlit run streamlit_app.py This repo aims to reproduce the results of

aventau 102 Dec 26, 2022
A hand tracking demo made with mediapipe where you can control lights with pinching your fingers and moving your hand up/down.

HandTrackingBrightnessControl A hand tracking demo made with mediapipe where you can control lights with pinching your fingers and moving your hand up

Teemu Laurila 19 Feb 12, 2022
Hand tracking demo for DIY Smart Glasses with a remote computer doing the work

CameraStream This is a demonstration that streams the image from smartglasses to a pc, does the hand recognition on the remote pc and streams the proc

Teemu Laurila 20 Oct 13, 2022
Demo for the paper "Overlap-aware low-latency online speaker diarization based on end-to-end local segmentation"

Streaming speaker diarization Overlap-aware low-latency online speaker diarization based on end-to-end local segmentation by Juan Manuel Coria, Hervé

Juanma Coria 187 Jan 6, 2023
Demo code for ICCV 2021 paper "Sensor-Guided Optical Flow"

Sensor-Guided Optical Flow Demo code for "Sensor-Guided Optical Flow", ICCV 2021 This code is provided to replicate results with flow hints obtained f

null 10 Mar 16, 2022
RealTime Emotion Recognizer for Machine Learning Study Jam's demo

Emotion recognizer Table of contents Clone project Dataset Install dependencies Main program Demo 1. Clone project git clone https://github.com/GDSC20

Google Developer Student Club - UIT 1 Oct 5, 2021