diff --git a/docs/source/conf.py b/docs/source/conf.py index 465bb1bb..f50ef6d3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -298,9 +298,10 @@ linkcheck_ignore = [ r"https://github.com/jupyterhub/jupyterhub/security/advisories/.*", # Occasionally blocks CI checks with 403 r"https://www\.mysql\.com", - # Does this still exist? https://github.com/jupyterhub/jupyterhub/blob/01a43f41f8b1554f2de659104284f6345d76636d/docs/source/reference/changelog.md?plain=1#L1834 - r" https://voila-gallery\.org", + # Occasionally blocks CI checks with SSL error + r"https://mediaspace\.msu\.edu/.*", ] + linkcheck_anchors_ignore = [ "/#!", "/#%21", diff --git a/docs/source/contributing/setup.md b/docs/source/contributing/setup.md index de4b3522..52b99bea 100644 --- a/docs/source/contributing/setup.md +++ b/docs/source/contributing/setup.md @@ -5,13 +5,13 @@ ## System requirements JupyterHub can only run on macOS or Linux operating systems. If you are -using Windows, we recommend using [VirtualBox](https://virtualbox.org) +using Windows, we recommend using [VirtualBox](https://www.virtualbox.org) or a similar system to run [Ubuntu Linux](https://ubuntu.com) for development. ### Install Python -JupyterHub is written in the [Python](https://python.org) programming language and +JupyterHub is written in the [Python](https://www.python.org) programming language and requires you have at least version {{python_min}} installed locally. If you haven’t installed Python before, the recommended way to install it is to use [Miniforge](https://github.com/conda-forge/miniforge#download). diff --git a/docs/source/explanation/oauth.md b/docs/source/explanation/oauth.md index 2cdf490b..29ad373c 100644 --- a/docs/source/explanation/oauth.md +++ b/docs/source/explanation/oauth.md @@ -98,7 +98,7 @@ the OAuth callback request. to retrieve information about the owner of the token (the user). This is the step where behavior diverges for different OAuth providers. Up to this point, all OAuth providers are the same, following the OAuth specification. - However, OAuth does not define a standard for issuing tokens in exchange for information about their owner or permissions ([OpenID Connect](https://openid.net/connect/) does that), + However, OAuth does not define a standard for issuing tokens in exchange for information about their owner or permissions ([OpenID Connect](https://openid.net/developers/how-connect-works/) does that), so this step may be different for each OAuth provider. - Finally, the OAuth client stores its own record that the user is authorized in a cookie. This could be the token itself, or any other appropriate representation of successful authentication. diff --git a/docs/source/explanation/websecurity.md b/docs/source/explanation/websecurity.md index 3f19e988..d22b0e8a 100644 --- a/docs/source/explanation/websecurity.md +++ b/docs/source/explanation/websecurity.md @@ -101,7 +101,7 @@ matching `*.jupyter.example.org`. Unfortunately, for many institutional domains, wildcard DNS and SSL may not be available. We also **strongly encourage** serving JupyterHub and user content on a domain that is _not_ a subdomain of any sensitive content. -For reasoning, see [GitHub's discussion of moving user content to github.io from \*.github.com](https://github.blog/2013-04-09-yummy-cookies-across-domains/). +For reasoning, see [GitHub's discussion of moving user content to github.io from \*.github.com](https://github.blog/engineering/yummy-cookies-across-domains/). **If you do plan to serve untrusted users, enabling subdomains is highly encouraged**, as it resolves many security issues, which are difficult to unavoidable when JupyterHub is on a single-domain. diff --git a/docs/source/faq/institutional-faq.md b/docs/source/faq/institutional-faq.md index 8185864c..44793d51 100644 --- a/docs/source/faq/institutional-faq.md +++ b/docs/source/faq/institutional-faq.md @@ -142,7 +142,7 @@ in a variety of deployment setups. This often entails connecting your JupyterHub in these cases, and the security of your JupyterHub deployment will often depend on these decisions. If you are worried about security, don't hesitate to reach out to the JupyterHub community in the -[Jupyter Community Forum](https://discourse.jupyter.org/c/jupyterhub). This community of practice has many +[Jupyter Community Forum](https://discourse.jupyter.org/c/jupyterhub/10). This community of practice has many individuals with experience running secure JupyterHub deployments and will be very glad to help you out. ### Does JupyterHub provide computing or data infrastructure? diff --git a/docs/source/howto/configuration/config-sudo.md b/docs/source/howto/configuration/config-sudo.md index 43f2de9f..feaf2a53 100644 --- a/docs/source/howto/configuration/config-sudo.md +++ b/docs/source/howto/configuration/config-sudo.md @@ -35,7 +35,7 @@ This user shouldn't have a login shell or password (possible with -r). ## Set up sudospawner -Next, you will need [sudospawner](https://github.com/jupyter/sudospawner) +Next, you will need [sudospawner](https://github.com/jupyterhub/sudospawner) to enable monitoring the single-user servers with sudo: ```bash @@ -72,7 +72,7 @@ rhea ALL=(JUPYTER_USERS) NOPASSWD:JUPYTER_CMD ``` It might be useful to modify `secure_path` to add commands in path. (Search for -`secure_path` in the [sudo docs](https://www.sudo.ws/man/1.8.14/sudoers.man.html) +`secure_path` in the [sudo docs](https://www.sudo.ws) As an alternative to adding every user to the `/etc/sudoers` file, you can use a group in the last line above, instead of `JUPYTER_USERS`: diff --git a/docs/source/howto/log-messages.md b/docs/source/howto/log-messages.md index 26f16f68..dbba8169 100644 --- a/docs/source/howto/log-messages.md +++ b/docs/source/howto/log-messages.md @@ -71,4 +71,4 @@ aligned, rather than as an indicator of an existing problem. Upgrade the version of the `jupyterhub` package in your user environment or image so that it matches the version of JupyterHub running your JupyterHub server! If you are using the [zero-to-jupyterhub](https://z2jh.jupyter.org) helm chart, you can find the appropriate -version of the `jupyterhub` package to install in your user image [here](https://jupyterhub.github.io/helm-chart/) +version of the `jupyterhub` package to install in your user image [here](https://hub.jupyter.org/helm-chart/) diff --git a/docs/source/howto/proxy.md b/docs/source/howto/proxy.md index e5dbbf8c..4ecd28a1 100644 --- a/docs/source/howto/proxy.md +++ b/docs/source/howto/proxy.md @@ -232,4 +232,4 @@ A list of the proxies that are currently available for JupyterHub (that we know 1. [`jupyterhub/configurable-http-proxy`](https://github.com/jupyterhub/configurable-http-proxy) The default proxy which uses node-http-proxy 2. [`jupyterhub/traefik-proxy`](https://github.com/jupyterhub/traefik-proxy) The proxy which configures traefik proxy server for jupyterhub -3. [`AbdealiJK/configurable-http-proxy`](https://github.com/AbdealiJK/configurable-http-proxy) A pure python implementation of the configurable-http-proxy +3. [`AbdealiJK/configurable-http-proxy`](https://github.com/corridor/configurable-http-proxy) A pure python implementation of the configurable-http-proxy diff --git a/docs/source/index.md b/docs/source/index.md index 12db4f53..a203ee2d 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -17,7 +17,7 @@ It has two main distributions which are developed to serve the needs of each of 1. [The Littlest JupyterHub](https://github.com/jupyterhub/the-littlest-jupyterhub) distribution is suitable if you need a small number of users (1-100) and a single server with a simple environment. 2. [Zero to JupyterHub with Kubernetes](https://github.com/jupyterhub/zero-to-jupyterhub-k8s) allows you to deploy dynamic servers on the cloud if you need even more users. - This distribution runs JupyterHub on top of [Kubernetes](https://k8s.io). + This distribution runs JupyterHub on top of [Kubernetes](https://kubernetes.io/). ```{note} It is important to evaluate these distributions before you can continue with the diff --git a/docs/source/reference/changelog.md b/docs/source/reference/changelog.md index 53f8b9b1..5e0d7986 100644 --- a/docs/source/reference/changelog.md +++ b/docs/source/reference/changelog.md @@ -1831,7 +1831,7 @@ Highlights: - More configuration of page templates and service display - Pagination of the admin page improving performance with large numbers of users - Improved control of user redirect -- Support for [jupyter-server](https://jupyter-server.readthedocs.io/en/latest/)-based single-user servers, such as [Voilà](https://voila-gallery.org) and latest JupyterLab. +- Support for [jupyter-server](https://jupyter-server.readthedocs.io/en/latest/)-based single-user servers, such as [Voilà](https://voila.readthedocs.io) and latest JupyterLab. - Lots more improvements to documentation, HTML pages, and customizations ([full changelog](https://github.com/jupyterhub/jupyterhub/compare/1.1.0...1.2.0)) diff --git a/docs/source/reference/gallery-jhub-deployments.md b/docs/source/reference/gallery-jhub-deployments.md index a0e8d1ee..beda70b5 100644 --- a/docs/source/reference/gallery-jhub-deployments.md +++ b/docs/source/reference/gallery-jhub-deployments.md @@ -16,13 +16,13 @@ Please submit pull requests to update information or to add new institutions or - [BIDS - Berkeley Institute for Data Science](https://bids.berkeley.edu/) -- [Data 8](http://data8.org/) +- [Data 8](https://www.data8.org/) - [GitHub organization](https://github.com/data-8) - [NERSC](https://www.nersc.gov/) - [Research IT](https://research-it.berkeley.edu) - - [JupyterHub server supports campus research computation](https://research-it.berkeley.edu/blog/17/01/24/free-fully-loaded-jupyterhub-server-supports-campus-research-computation) + - [JupyterHub server supports campus research computation](https://research-it.berkeley.edu/news/free-fully-loaded-jupyterhub-server-supports-campus-research-computation) ### University of California Davis @@ -82,7 +82,7 @@ Within CERN, there are two noteworthy JupyterHub deployments in operation: [ETH Zurich](https://ethz.ch/en.html), (Federal Institute of Technology Zurich), is a public research university in Zürich, Switzerland, with focus on science, technology, engineering, and mathematics, although its 16 departments span a variety of disciplines and subjects. -The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/organisation/departments/educational-development-and-technology.html) unit provides JupyterHub exclusively for teaching and learning, integrated in the learning management system [Moodle](https://ethz.ch/staffnet/en/teaching/academic-support/it-services-teaching/teaching-applications/moodle-service.html). Each course gets its individually configured JupyterHub environment deployed on a on-premise Kubernetes cluster. +The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/organisation/departments/teaching-and-learning.html) unit provides JupyterHub exclusively for teaching and learning, integrated in the learning management system [Moodle](https://ethz.ch/staffnet/en/teaching/academic-support/it-services-teaching/teaching-applications/moodle-service.html). Each course gets its individually configured JupyterHub environment deployed on a on-premise Kubernetes cluster. - [ETH JupyterHub](https://ethz.ch/staffnet/en/teaching/academic-support/it-services-teaching/teaching-applications/jupyterhub.html) for teaching and learning @@ -121,11 +121,11 @@ The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/o ### Paderborn University - [Data Science (DICE) group](https://dice-research.org) - - [nbgraderutils](https://github.com/dice-group/nbgraderutils): Use JupyterHub + nbgrader + iJava kernel for online Java exercises. Used in lecture Statistical Natural Language Processing. + - [JavaOnlineExercises](https://github.com/dice-group/JavaOnlineExercises): Use JupyterHub + nbgrader + iJava kernel for online Java exercises. Used in lecture Statistical Natural Language Processing. ### Penn State University -- [Press release](https://news.psu.edu/story/523093/2018/05/24/new-open-source-web-apps-available-students-and-faculty): "New open-source web apps available for students and faculty" +- [Press release](https://www.psu.edu/news/academics/story/new-open-source-web-apps-available-students-and-faculty): "New open-source web apps available for students and faculty" ### University of California San Diego @@ -149,7 +149,7 @@ The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/o ### Elucidata -- What's new in Jupyter Notebooks @[Elucidata](https://elucidata.io/): +- What's new in Jupyter Notebooks @[Elucidata](https://www.elucidata.io/): - [Using Jupyter Notebooks with Jupyterhub on GCP, managed by GKE](https://medium.com/elucidata/why-you-should-be-using-a-jupyter-notebook-8385a4ccd93d) ## Service Providers @@ -169,7 +169,7 @@ The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/o ### Microsoft Azure -- [Azure Data Science Virtual Machine release notes](https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-data-science-linux-dsvm-intro) +- [Azure Data Science Virtual Machine release notes](https://learn.microsoft.com/en-us/azure/machine-learning/machine-learning-data-science-linux-dsvm-intro) ### Rackspace Carina @@ -197,5 +197,5 @@ The [Educational Development and Technology](https://ethz.ch/en/the-eth-zurich/o - https://www.walkingrandomly.com/?p=5734 - https://wrdrd.com/docs/consulting/education-technology - https://bitbucket.org/jackhale/fenics-jupyter -- [LinuxCluster blog](https://linuxcluster.wordpress.com/category/application/jupyterhub/) +- [LinuxCluster blog](https://thelinuxcluster.com/category/application/jupyterhub/) - [Spark Cluster on OpenStack with Multi-User Jupyter Notebook](https://arnesund.com/2015/09/21/spark-cluster-on-openstack-with-multi-user-jupyter-notebook/) diff --git a/docs/source/tutorial/quickstart-docker.md b/docs/source/tutorial/quickstart-docker.md index d64c5754..8adb20eb 100644 --- a/docs/source/tutorial/quickstart-docker.md +++ b/docs/source/tutorial/quickstart-docker.md @@ -46,7 +46,7 @@ If you want to run docker on a computer that has a public IP then you should (as in MUST) **secure it with ssl** by adding ssl options to your docker configuration or using an ssl enabled proxy. -[Mounting volumes](https://docs.docker.com/engine/admin/volumes/volumes/) +[Mounting volumes](https://docs.docker.com/engine/storage/volumes/) enables you to persist and store the data generated by the docker container, even when you stop the container. The persistent data can be stored on the host system, outside the container.