-
Notifications
You must be signed in to change notification settings - Fork 18
Document licensed software options #312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| # Alternative user interfaces | ||
|
|
||
| 2i2c hubs can run other web applications (for example VS Code, RStudio, or a desktop) inside the same user server. These rely on [`jupyter-server-proxy`](https://jupyter-server-proxy.readthedocs.io/) packages shipped in the user image (see [](./customize.md) to add the proxy packages to your own image). | ||
| 2i2c hubs can run other web applications (for example VS Code, RStudio, Positron, or a desktop) inside the same user server. These rely on [`jupyter-server-proxy`](https://jupyter-server-proxy.readthedocs.io/) packages shipped in the user image (see [](./customize.md) to add the proxy packages to your own image). | ||
|
|
||
| ## How it works | ||
|
|
||
|
|
@@ -71,7 +71,7 @@ Here are examples for the desktop proxy (any image with `jupyter-remote-desktop- | |
| - [Hub configuration](https://github.com/2i2c-org/infrastructure/blob/a042ecc16ed9d7111eece2ff19261446e69cc0e2/config/clusters/nasa-veda/common.values.yaml#L166-L173) | ||
| - [User environment image configuration repository](https://github.com/2i2c-org/nasa-qgis-image) | ||
|
|
||
| Images with `jupyter-remote-desktop-proxy` expose a lightweight [XFCE](https://www.xfce.org/) desktop for GUI tools such as [QGIS](https://qgis.org/) or [MATLAB](https://www.mathworks.com/products/matlab.html). Use any image that includes `jupyter-remote-desktop-proxy`. The one below is for illustration. | ||
| Images with `jupyter-remote-desktop-proxy` expose a lightweight [XFCE](https://www.xfce.org/) desktop for GUI tools such as [QGIS](https://qgis.org/). Use any image that includes `jupyter-remote-desktop-proxy`. The one below is for illustration. | ||
|
|
||
| ``` | ||
| jupyterhub: | ||
|
|
@@ -91,6 +91,37 @@ jupyterhub: | |
| Example remote desktop session running [ArcGIS Pro](https://www.esri.com/en-us/arcgis/products/arcgis-pro/overview) through the desktop profile. | ||
| ``` | ||
|
|
||
| ### Licensed software (Positron, MATLAB, etc) | ||
|
|
||
| Some applications proxied this way require a license tied to your institution. 2i2c can mount a license file into user pods as an encrypted secret via KubeSpawner's `extraFiles`, so the license never needs to live in your image. This requires [opening a support request](../../support.md), since it involves handling secrets on the 2i2c side. Securing the license itself with the vendor is the community's responsibility. | ||
|
choldgraf marked this conversation as resolved.
|
||
|
|
||
| :::{note} | ||
| License files mounted into user-servers are visible to the user. The risks associated with this should be considered. | ||
| ::: | ||
|
|
||
| #### Positron | ||
|
|
||
| [Positron](https://positron.posit.co/) is Posit's data science IDE. It's licensed under the [Elastic License 2.0](https://positron.posit.co/licensing.html), which doesn't permit hosting it as a service to third parties except under Posit's **Education Exception**: access restricted to enrolled students or course participants, with any fees tied to instruction rather than software access. | ||
|
|
||
| There are two ways to run it on a 2i2c hub: | ||
|
|
||
| - **License file inside the Linux Desktop**: mount your institution's Positron license as an `extraFiles` secret, and run Positron as an app inside the [Linux Desktop interface](#interfaces:desktop). | ||
| - **`jupyter-positron-server`**: a `jupyter-server-proxy` extension that Posit maintains specifically for this use case. It enforces the Education Exception itself, issuing signed, per-session licenses via a hub-side verifier service instead of a static file. See the [Jupyter blog post announcing it](https://blog.jupyter.org/positron-server-available-for-academic-use-via-jupyterhub-ae4e406f9444) and [Berkeley DataHub's docs](https://docs.datahub.berkeley.edu/tasks/positron.html) for a working example. | ||
|
|
||
| Either way, **confirm with Posit** that your license covers your planned deployment. | ||
|
|
||
| #### MATLAB | ||
|
|
||
| [MATLAB](https://www.mathworks.com/products/matlab.html) uses the same pattern: your institution's MATLAB license is mounted into the pod as an `extraFiles` secret, and MATLAB runs as an app inside the Linux Desktop interface. | ||
|
|
||
| :::{support-button} | ||
| :label: Click here to request licensed software (Positron, MATLAB, etc.) for your hub | ||
| :subject: Request licensed software on hub | ||
| :type: Feature Request | ||
| ::: | ||
|
|
||
| --- | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is partially just there to fix a CSS whitespace bug for buttons followed by admonitions... |
||
|
|
||
| :::{seealso} | ||
|
|
||
| * [Jupyter Server Proxy Documentation](https://jupyter-server-proxy.readthedocs.io/) - Authoritative technical guidance. | ||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we link to the openscapes config as well or just leave it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leave it, I think -- link rot?