jupyter-remote-desktop-proxy


Namejupyter-remote-desktop-proxy JSON
Version 2.0.1 PyPI version JSON
download
home_pagehttps://jupyter.org
SummaryRun a desktop environments on Jupyter
upload_time2024-06-13 15:54:21
maintainerNone
docs_urlNone
authorJupyter Development Team
requires_python>=3.8
licenseBSD
keywords interactive desktop jupyter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Jupyter Remote Desktop Proxy

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyterhub/jupyter-remote-desktop-proxy/HEAD?urlpath=desktop)
[![Test](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/actions/workflows/test.yaml/badge.svg)](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/actions/workflows/test.yaml)
[![Latest PyPI version](https://img.shields.io/pypi/v/jupyter-remote-desktop-proxy?logo=pypi)](https://pypi.python.org/pypi/jupyter-remote-desktop-proxy)
[![Issue tracking - GitHub](https://img.shields.io/badge/issue_tracking-github-blue?logo=github)](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/issues)
[![Help forum - Discourse](https://img.shields.io/badge/help_forum-discourse-blue?logo=discourse)](https://discourse.jupyter.org/c/jupyterhub)

Run XFCE (or other desktop environments) on Jupyter.

This is based on https://github.com/ryanlovett/nbnovnc.

When this extension is launched it will run a Linux desktop on the Jupyter single-user server, and proxy it to your browser using VNC via Jupyter.

## VNC Server

This extension requires a [VNC Server](https://en.wikipedia.org/wiki/Virtual_Network_Computing)
to be installed on the system (likely, in the container image). The
most tested VNC server is [TigerVNC](https://tigervnc.org/), while
[TurboVNC](https://www.turbovnc.org/) also works. Any VNC server available
in `$PATH` as `vncserver` will be used, but no real testing outside of
these servers has been performed.

For an example, see the [`Dockerfile`](./Dockerfile) in this repository which installs TigerVNC and XFCE4.

## Installation

1. Install this package itself, with `pip` from `PyPI`:

   ```bash
   pip install jupyter-remote-desktop-proxy
   ```

2. Install the [websockify](https://github.com/novnc/websockify) dependency. Unfortunately,
   the PyPI `websockify` package is broken, so you need to install it either
   from [conda-forge](https://anaconda.org/conda-forge/websockify) or with
   [apt](https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=websockify)

3. Install the packages needed to provide a VNC server and the actual Linux Desktop environment.
   You need to pick a desktop environment (there are many!) - here are the packages
   to use TigerVNC and the light-weight [XFCE4](https://www.xfce.org/) desktop environment on Ubuntu 22.04:

   ```
   dbus-x11
   xfce4
   xfce4-panel
   xfce4-session
   xfce4-settings
   xorg
   xubuntu-icon-theme
   tigervnc-standalone-server
   tigervnc-xorg-extension
   ```

   The recommended way to install these is from your Linux system package manager
   of choice (such as apt).

## Docker

To spin up such a notebook first build the container:

```bash
$ docker build -t $(whoami)/$(basename ${PWD}) .
```

Now you can run the image:

```bash
$ docker run --rm --security-opt seccomp=unconfined -p 8888:8888 $(whoami)/$(basename ${PWD})
Executing the command: jupyter notebook
[I 12:43:59.148 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 12:44:00.221 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 12:44:00.221 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 12:44:00.224 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 12:44:00.225 NotebookApp] The Jupyter Notebook is running at:
[I 12:44:00.225 NotebookApp] http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp]  or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:44:00.229 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-8-open.html
    Or copy and paste one of these URLs:
        http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
     or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
*snip*
```

Now head to the URL shown and you will be greated with a XFCE desktop.

Note the `--security-opt seccomp=unconfined` parameter - this is necessary
to start daemons (such as dbus, pulseaudio, etc) necessary for linux desktop
to work. This is the option kubernetes runs with by default, so most kubernetes
based JupyterHubs will not need any modifications for this to work.

## Limitations

1. Desktop applications that require access to OpenGL are currently unsupported.

            

Raw data

            {
    "_id": null,
    "home_page": "https://jupyter.org",
    "name": "jupyter-remote-desktop-proxy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Interactive, Desktop, Jupyter",
    "author": "Jupyter Development Team",
    "author_email": "jupyter@googlegroups.com",
    "download_url": "https://files.pythonhosted.org/packages/8e/94/f13d9ac810f3c9756c75e728df3796bbc41d1f1a68beb2c491e4bde45fdc/jupyter_remote_desktop_proxy-2.0.1.tar.gz",
    "platform": "Linux",
    "description": "# Jupyter Remote Desktop Proxy\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyterhub/jupyter-remote-desktop-proxy/HEAD?urlpath=desktop)\n[![Test](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/actions/workflows/test.yaml/badge.svg)](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/actions/workflows/test.yaml)\n[![Latest PyPI version](https://img.shields.io/pypi/v/jupyter-remote-desktop-proxy?logo=pypi)](https://pypi.python.org/pypi/jupyter-remote-desktop-proxy)\n[![Issue tracking - GitHub](https://img.shields.io/badge/issue_tracking-github-blue?logo=github)](https://github.com/jupyterhub/jupyter-remote-desktop-proxy/issues)\n[![Help forum - Discourse](https://img.shields.io/badge/help_forum-discourse-blue?logo=discourse)](https://discourse.jupyter.org/c/jupyterhub)\n\nRun XFCE (or other desktop environments) on Jupyter.\n\nThis is based on https://github.com/ryanlovett/nbnovnc.\n\nWhen this extension is launched it will run a Linux desktop on the Jupyter single-user server, and proxy it to your browser using VNC via Jupyter.\n\n## VNC Server\n\nThis extension requires a [VNC Server](https://en.wikipedia.org/wiki/Virtual_Network_Computing)\nto be installed on the system (likely, in the container image). The\nmost tested VNC server is [TigerVNC](https://tigervnc.org/), while\n[TurboVNC](https://www.turbovnc.org/) also works. Any VNC server available\nin `$PATH` as `vncserver` will be used, but no real testing outside of\nthese servers has been performed.\n\nFor an example, see the [`Dockerfile`](./Dockerfile) in this repository which installs TigerVNC and XFCE4.\n\n## Installation\n\n1. Install this package itself, with `pip` from `PyPI`:\n\n   ```bash\n   pip install jupyter-remote-desktop-proxy\n   ```\n\n2. Install the [websockify](https://github.com/novnc/websockify) dependency. Unfortunately,\n   the PyPI `websockify` package is broken, so you need to install it either\n   from [conda-forge](https://anaconda.org/conda-forge/websockify) or with\n   [apt](https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=websockify)\n\n3. Install the packages needed to provide a VNC server and the actual Linux Desktop environment.\n   You need to pick a desktop environment (there are many!) - here are the packages\n   to use TigerVNC and the light-weight [XFCE4](https://www.xfce.org/) desktop environment on Ubuntu 22.04:\n\n   ```\n   dbus-x11\n   xfce4\n   xfce4-panel\n   xfce4-session\n   xfce4-settings\n   xorg\n   xubuntu-icon-theme\n   tigervnc-standalone-server\n   tigervnc-xorg-extension\n   ```\n\n   The recommended way to install these is from your Linux system package manager\n   of choice (such as apt).\n\n## Docker\n\nTo spin up such a notebook first build the container:\n\n```bash\n$ docker build -t $(whoami)/$(basename ${PWD}) .\n```\n\nNow you can run the image:\n\n```bash\n$ docker run --rm --security-opt seccomp=unconfined -p 8888:8888 $(whoami)/$(basename ${PWD})\nExecuting the command: jupyter notebook\n[I 12:43:59.148 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret\n[I 12:44:00.221 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab\n[I 12:44:00.221 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab\n[I 12:44:00.224 NotebookApp] Serving notebooks from local directory: /home/jovyan\n[I 12:44:00.225 NotebookApp] The Jupyter Notebook is running at:\n[I 12:44:00.225 NotebookApp] http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83\n[I 12:44:00.225 NotebookApp]  or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83\n[I 12:44:00.225 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n[C 12:44:00.229 NotebookApp]\n\n    To access the notebook, open this file in a browser:\n        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-8-open.html\n    Or copy and paste one of these URLs:\n        http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83\n     or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83\n*snip*\n```\n\nNow head to the URL shown and you will be greated with a XFCE desktop.\n\nNote the `--security-opt seccomp=unconfined` parameter - this is necessary\nto start daemons (such as dbus, pulseaudio, etc) necessary for linux desktop\nto work. This is the option kubernetes runs with by default, so most kubernetes\nbased JupyterHubs will not need any modifications for this to work.\n\n## Limitations\n\n1. Desktop applications that require access to OpenGL are currently unsupported.\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Run a desktop environments on Jupyter",
    "version": "2.0.1",
    "project_urls": {
        "Homepage": "https://jupyter.org",
        "Source": "https://github.com/jupyterhub/jupyter-remote-desktop-proxy/",
        "Tracker": "https://github.com/jupyterhub/jupyter-remote-desktop-proxy/issues"
    },
    "split_keywords": [
        "interactive",
        " desktop",
        " jupyter"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1342917d6777b4caa89d3a6516abf8e64250e705999826e4fc10027b3b1746d6",
                "md5": "dd72e1723c106a88b2854b23a3302e47",
                "sha256": "3ee173e9f5d49836469f0f600610fb3745e4343cb4e17b6c0b3cd7a9c72c1165"
            },
            "downloads": -1,
            "filename": "jupyter_remote_desktop_proxy-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dd72e1723c106a88b2854b23a3302e47",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 326529,
            "upload_time": "2024-06-13T15:54:19",
            "upload_time_iso_8601": "2024-06-13T15:54:19.451415Z",
            "url": "https://files.pythonhosted.org/packages/13/42/917d6777b4caa89d3a6516abf8e64250e705999826e4fc10027b3b1746d6/jupyter_remote_desktop_proxy-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e94f13d9ac810f3c9756c75e728df3796bbc41d1f1a68beb2c491e4bde45fdc",
                "md5": "055705cfd0798eb76c33f6bdce23c24b",
                "sha256": "2397919371e04baf5f7aaba4db5af52868411926080a573ea15ffe12d9dd4d2e"
            },
            "downloads": -1,
            "filename": "jupyter_remote_desktop_proxy-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "055705cfd0798eb76c33f6bdce23c24b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 322499,
            "upload_time": "2024-06-13T15:54:21",
            "upload_time_iso_8601": "2024-06-13T15:54:21.433438Z",
            "url": "https://files.pythonhosted.org/packages/8e/94/f13d9ac810f3c9756c75e728df3796bbc41d1f1a68beb2c491e4bde45fdc/jupyter_remote_desktop_proxy-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-13 15:54:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jupyterhub",
    "github_project": "jupyter-remote-desktop-proxy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jupyter-remote-desktop-proxy"
}
        
Elapsed time: 0.79846s