diff --git a/docs/source/admin/capacity-planning.md b/docs/source/admin/capacity-planning.md index d4649d99..ef0524cd 100644 --- a/docs/source/admin/capacity-planning.md +++ b/docs/source/admin/capacity-planning.md @@ -68,7 +68,7 @@ but which are **less predictable**. [the-littlest-jupyterhub]: https://the-littlest-jupyterhub.readthedocs.io -[zero-to-jupyterhub]: https://zero-to-jupyterhub.readthedocs.io +[zero-to-jupyterhub]: https://z2jh.jupyter.org (limits-requests)= @@ -299,10 +299,10 @@ There are lots of other resources for cost and capacity planning that may be spe Here are some useful links to other resources -- [Zero to JupyterHub](https://zero-to-jupyterhub.readthedocs.io) documentation on - - [projecting costs](https://zero-to-jupyterhub.readthedocs.io/en/latest/administrator/cost.html) - - [configuring user resources](https://zero-to-jupyterhub.readthedocs.io/en/latest/jupyterhub/customizing/user-resources.html) +- [Zero to JupyterHub](https://z2jh.jupyter.org) documentation on + - [projecting costs](https://z2jh.jupyter.org/en/latest/administrator/cost.html) + - [configuring user resources](https://z2jh.jupyter.org/en/latest/jupyterhub/customizing/user-resources.html) - Cloud platform cost calculators: - [Google Cloud](https://cloud.google.com/products/calculator/) - - [Amazon AWS](https://calculator.s3.amazonaws.com) + - [Amazon AWS](https://calculator.aws) - [Microsoft Azure](https://azure.microsoft.com/en-us/pricing/calculator/) diff --git a/docs/source/conf.py b/docs/source/conf.py index f8f92cc8..59be24ae 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -188,13 +188,13 @@ linkcheck_ignore = [ r"https://github.com/[^/]*$", # too many github usernames / searches in changelog "https://github.com/jupyterhub/jupyterhub/pull/", # too many PRs in changelog "https://github.com/jupyterhub/jupyterhub/compare/", # too many comparisons in changelog + r"https?://(localhost|127.0.0.1).*", # ignore localhost references in auto-links ] linkcheck_anchors_ignore = [ "/#!", "/#%21", ] - # -- Intersphinx ------------------------------------------------------------- # ref: https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#configuration # diff --git a/docs/source/contributing/community.md b/docs/source/contributing/community.md index f7273ad1..84c5a83d 100644 --- a/docs/source/contributing/community.md +++ b/docs/source/contributing/community.md @@ -19,7 +19,7 @@ We use [our Gitter channel](https://gitter.im/jupyterhub/jupyterhub) for online, [Github issues](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues) are used for most long-form project discussions, bug reports and feature requests. - Issues related to a specific authenticator or spawner should be opened in the appropriate repository for the authenticator or spawner. -- If you are using a specific JupyterHub distribution (such as [Zero to JupyterHub on Kubernetes](http://github.com/jupyterhub/zero-to-jupyterhub-k8s) or [The Littlest JupyterHub](http://github.com/jupyterhub/the-littlest-jupyterhub/)), you should open issues directly in their repository. +- If you are using a specific JupyterHub distribution (such as [Zero to JupyterHub on Kubernetes](https://github.com/jupyterhub/zero-to-jupyterhub-k8s) or [The Littlest JupyterHub](https://github.com/jupyterhub/the-littlest-jupyterhub/)), you should open issues directly in their repository. - If you cannot find a repository to open your issue in, do not worry! Open the issue in the [main JupyterHub repository](https://github.com/jupyterhub/jupyterhub/) and our community will help you figure it out. ```{note} diff --git a/docs/source/contributing/docs.md b/docs/source/contributing/docs.md index f7652582..d24f3848 100644 --- a/docs/source/contributing/docs.md +++ b/docs/source/contributing/docs.md @@ -7,7 +7,7 @@ you get set up on how to contribute to JupyterHub's documentation. ## Building documentation locally -We use [sphinx](http://sphinx-doc.org) to build our documentation. It takes +We use [sphinx](https://www.sphinx-doc.org) to build our documentation. It takes our documentation source files (written in [markdown](https://daringfireball.net/projects/markdown/) or [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html) & stored under the `docs/source` directory) and converts it into various formats for people to read. To make sure the documentation you write or diff --git a/docs/source/contributing/setup.md b/docs/source/contributing/setup.md index 695b3242..0bde832f 100644 --- a/docs/source/contributing/setup.md +++ b/docs/source/contributing/setup.md @@ -14,8 +14,7 @@ development. JupyterHub is written in the [Python](https://python.org) programming language and requires you have at least version 3.6 installed locally. If you haven’t installed Python before, the recommended way to install it is to use -[Miniconda](https://conda.io/miniconda.html). Remember to get the ‘Python 3’ version, -and **not** the ‘Python 2’ version! +[Miniforge](https://github.com/conda-forge/miniforge#download). ### Install nodejs diff --git a/docs/source/contributing/tests.md b/docs/source/contributing/tests.md index c0780e91..7f01e84a 100644 --- a/docs/source/contributing/tests.md +++ b/docs/source/contributing/tests.md @@ -99,7 +99,7 @@ Refer to the [pytest fixtures documentation](https://pytest.readthedocs.io/en/la ### All the tests are failing -Make sure you have completed all the steps in {ref}`contributing/setup` successfully, and are able to access JupyterHub from your browser at after starting `jupyterhub` in your command line. +Make sure you have completed all the steps in {ref}`contributing/setup` successfully, and are able to access JupyterHub from your browser at http://localhost:8000 after starting `jupyterhub` in your command line. ## Code formatting and linting diff --git a/docs/source/gallery-jhub-deployments.md b/docs/source/gallery-jhub-deployments.md index 89780e65..1b67089a 100644 --- a/docs/source/gallery-jhub-deployments.md +++ b/docs/source/gallery-jhub-deployments.md @@ -20,13 +20,13 @@ Please submit pull requests to update information or to add new institutions or - [GitHub organization](https://github.com/data-8) -- [NERSC](http://www.nersc.gov/) +- [NERSC](https://www.nersc.gov/) - - [Press release on Jupyter and Cori](http://www.nersc.gov/news-publications/nersc-news/nersc-center-news/2016/jupyter-notebooks-will-open-up-new-possibilities-on-nerscs-cori-supercomputer/) + - [Press release on Jupyter and Cori](https://www.nersc.gov/news-publications/nersc-news/nersc-center-news/2016/jupyter-notebooks-will-open-up-new-possibilities-on-nerscs-cori-supercomputer/) - [Moving and sharing data](https://www.nersc.gov/assets/Uploads/03-MovingAndSharingData-Cholia.pdf) -- [Research IT](http://research-it.berkeley.edu) - - [JupyterHub server supports campus research computation](http://research-it.berkeley.edu/blog/17/01/24/free-fully-loaded-jupyterhub-server-supports-campus-research-computation) +- [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) ### University of California Davis @@ -71,25 +71,21 @@ easy to do with RStudio too. ### Clemson University - Advanced Computing - - [Palmetto cluster and JupyterHub](http://citi.sites.clemson.edu/2016/08/18/JupyterHub-for-Palmetto-Cluster.html) + - [Palmetto cluster and JupyterHub](https://citi.sites.clemson.edu/2016/08/18/JupyterHub-for-Palmetto-Cluster.html) ### University of Colorado Boulder - (CU Research Computing) CURC - - [JupyterHub User Guide](https://www.rc.colorado.edu/support/user-guide/jupyterhub.html) + - [JupyterHub User Guide](https://curc.readthedocs.io/en/latest/gateways/jupyterhub.html) - Slurm job dispatched on Crestone compute cluster - log troubleshooting - Profiles in IPython Clusters tab - - [Parallel Processing with JupyterHub tutorial](https://www.rc.colorado.edu/support/examples-and-tutorials/parallel-processing-with-jupyterhub.html) - - [Parallel Programming with JupyterHub document](https://www.rc.colorado.edu/book/export/html/833) - -- Earth Lab at CU - - [Tutorial on Parallel R on JupyterHub](https://earthdatascience.org/tutorials/parallel-r-on-jupyterhub/) + - [Parallel Processing with JupyterHub tutorial](https://curc.readthedocs.io/en/latest/gateways/parallel-programming-jupyter.html) ### George Washington University -- [Jupyter Hub](http://go.gwu.edu/jupyter) with university single-sign-on. Deployed early 2017. +- [JupyterHub](https://go.gwu.edu/jupyter) with university single-sign-on. Deployed early 2017. ### HTCondor @@ -101,7 +97,7 @@ easy to do with RStudio too. ### IllustrisTNG Simulation Project -- [JupyterHub/Lab-based analysis platform, part of the TNG public data release](http://www.tng-project.org/data/) +- [JupyterHub/Lab-based analysis platform, part of the TNG public data release](https://www.tng-project.org/data/) ### MIT and Lincoln Labs @@ -121,17 +117,13 @@ easy to do with RStudio too. ### Paderborn University -- [Data Science (DICE) group](https://dice.cs.uni-paderborn.de/) +- [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. ### 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" -### University of Rochester CIRC - -- [JupyterHub Userguide](https://info.circ.rochester.edu/Web_Applications/JupyterHub.html) - Slurm, beehive - ### University of California San Diego - San Diego Supercomputer Center - Andrea Zonca @@ -144,7 +136,7 @@ easy to do with RStudio too. - [Sample deployment of Jupyterhub in HPC on SDSC Comet](https://zonca.github.io/2017/02/sample-deployment-jupyterhub-hpc.html) - Educational Technology Services - Paul Jamason - - [jupyterhub.ucsd.edu](https://jupyterhub.ucsd.edu) + - [datahub.ucsd.edu](https://datahub.ucsd.edu) ### TACC University of Texas @@ -180,7 +172,7 @@ easy to do with RStudio too. ### Rackspace Carina - https://getcarina.com/blog/learning-how-to-whale/ -- http://carolynvanslyck.com/talk/carina/jupyterhub/#/ (but carolynvanslyck is currently down; checked 10/26/22) +- https://carolynvanslyck.com/talk/carina/jupyterhub/#/ (but carolynvanslyck is currently down; checked 10/26/22) ### Hadoop @@ -189,12 +181,12 @@ easy to do with RStudio too. ## Miscellaneous - https://medium.com/@ybarraud/setting-up-jupyterhub-with-sudospawner-and-anaconda-844628c0dbee#.rm3yt87e1 -- [Mailing list UT deployment](https://groups.google.com/forum/#!topic/jupyter/nkPSEeMr8c0) +- [Mailing list UT deployment](https://groups.google.com/g/jupyter/c/nkPSEeMr8c0) - [JupyterHub setup on Centos](https://gist.github.com/johnrc/604971f7d41ebf12370bf5729bf3e0a4) -- [Deploy JupyterHub to Docker Swarm](https://jupyterhub.surge.sh/#/welcome) -- http://www.laketide.com/building-your-lab-part-3/ -- http://estrellita.hatenablog.com/entry/2015/07/31/083202 -- http://www.walkingrandomly.com/?p=5734 +- [Deploy JupyterHub to Docker Swarm](https://jupyterhub.surge.sh) +- https://www.laketide.com/building-your-lab-part-3/ +- https://estrellita.hatenablog.com/entry/2015/07/31/083202 +- 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/) diff --git a/docs/source/getting-started/config-basics.md b/docs/source/getting-started/config-basics.md index b19c243a..1ada6c34 100644 --- a/docs/source/getting-started/config-basics.md +++ b/docs/source/getting-started/config-basics.md @@ -46,7 +46,7 @@ jupyterhub -f /etc/jupyterhub/jupyterhub_config.py ``` The IPython documentation provides additional information on the -[config system](http://ipython.readthedocs.io/en/stable/development/config.html) +[config system](https://ipython.readthedocs.io/en/stable/development/config.html) that Jupyter uses. ## Configure using command line options diff --git a/docs/source/getting-started/institutional-faq.md b/docs/source/getting-started/institutional-faq.md index f37f6ba8..29fff4d0 100644 --- a/docs/source/getting-started/institutional-faq.md +++ b/docs/source/getting-started/institutional-faq.md @@ -132,7 +132,7 @@ users. - For security considerations in the base JupyterHub application, [see the JupyterHub security page](https://jupyterhub.readthedocs.io/en/stable/reference/websecurity.html). - For security considerations when deploying JupyterHub on Kubernetes, see the - [JupyterHub on Kubernetes security page](https://zero-to-jupyterhub.readthedocs.io/en/latest/security.html). + [JupyterHub on Kubernetes security page](https://z2jh.jupyter.org/en/latest/security.html). The longer answer: it depends on your deployment. Because JupyterHub is very flexible, it can be used in a variety of deployment setups. This often entails connecting your JupyterHub to **other** infrastructure diff --git a/docs/source/installation-basics.md b/docs/source/installation-basics.md index 62c44cd7..d9915893 100644 --- a/docs/source/installation-basics.md +++ b/docs/source/installation-basics.md @@ -16,7 +16,7 @@ minor Windows compatibility issues (such as basic installation) **may** be accep however. For Windows-based systems, we would recommend running JupyterHub in a docker container or Linux VM. -[Additional Reference:](http://www.tornadoweb.org/en/stable/#installation) +[Additional Reference:](https://www.tornadoweb.org/en/stable/#installation) Tornado's documentation on Windows platform support ## Planning your installation @@ -28,7 +28,7 @@ Prior to beginning installation, it's helpful to consider some of the following: - Spawner of singleuser notebook servers (Docker, Batch, etc.) - Services (nbgrader, etc.) - JupyterHub database (default SQLite; traditional RDBMS such as PostgreSQL,) - MySQL, or other databases supported by [SQLAlchemy](http://www.sqlalchemy.org)) + MySQL, or other databases supported by [SQLAlchemy](https://www.sqlalchemy.org)) ## Folders and File Locations diff --git a/docs/source/quickstart-docker.md b/docs/source/quickstart-docker.md index 7f356f28..ef369e9f 100644 --- a/docs/source/quickstart-docker.md +++ b/docs/source/quickstart-docker.md @@ -62,4 +62,4 @@ The created accounts will be used for authentication in JupyterHub's default configuration. [docker]: https://www.docker.com/ -[zero to jupyterhub]: https://zero-to-jupyterhub.readthedocs.io/en/latest/ +[zero to jupyterhub]: https://z2jh.jupyter.org/en/latest/ diff --git a/docs/source/quickstart.md b/docs/source/quickstart.md index 5560eeb9..45c59287 100644 --- a/docs/source/quickstart.md +++ b/docs/source/quickstart.md @@ -7,7 +7,7 @@ Before installing JupyterHub, you will need: - a Linux/Unix-based system - [Python](https://www.python.org/downloads/) 3.6 or greater. An understanding of using [`pip`](https://pip.pypa.io) or - [`conda`](https://conda.io/docs/get-started.html) for + [`conda`](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html) for installing Python packages is helpful. - [nodejs/npm](https://www.npmjs.com/). [Install nodejs/npm](https://docs.npmjs.com/getting-started/installing-node), using your operating system's package manager. diff --git a/docs/source/reference/config-sudo.md b/docs/source/reference/config-sudo.md index 12940665..7e57338e 100644 --- a/docs/source/reference/config-sudo.md +++ b/docs/source/reference/config-sudo.md @@ -13,7 +13,7 @@ running notebook servers as real system users on a shared system, without running the Hub itself as root. Since JupyterHub needs to spawn processes as other users, the simplest way -is to run it as root, spawning user servers with [setuid](http://linux.die.net/man/2/setuid). +is to run it as root, spawning user servers with [setuid](https://linux.die.net/man/2/setuid). But this isn't especially safe, because you have a process running on the public web as root. @@ -114,7 +114,7 @@ sudo: a password is required ## Enable PAM for non-root -By default, [PAM authentication](http://en.wikipedia.org/wiki/Pluggable_authentication_module) +By default, [PAM authentication](https://en.wikipedia.org/wiki/Pluggable_authentication_module) is used by JupyterHub. To use PAM, the process may need to be able to read the shadow password database. @@ -159,13 +159,13 @@ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/node ``` However, you may want to further understand the consequences of this. -([Further reading](http://man7.org/linux/man-pages/man7/capabilities.7.html)) +([Further reading](https://man7.org/linux/man-pages/man7/capabilities.7.html)) You may also be interested in limiting the amount of CPU any process can use on your server. `cpulimit` is a useful tool that is available for many Linux distributions' packaging system. This can be used to keep any user's process from using too much CPU cycles. You can configure it accoring to [these -instructions](http://ubuntuforums.org/showthread.php?t=992706). +instructions](https://ubuntuforums.org/showthread.php?t=992706). ### Shadow group (FreeBSD) @@ -228,7 +228,7 @@ And try logging in. ## Troubleshooting: SELinux -If you still get a generic `Permission denied` `PermissionError`, it's possible SELinux is blocking you. +If you still get a generic `Permission denied` `PermissionError`, it's possible SELinux is blocking you. Here's how you can make a module to resolve this. First, put this in a file named `sudo_exec_selinux.te`: diff --git a/docs/source/reference/monitoring.md b/docs/source/reference/monitoring.md index 20873d11..cbd5964f 100644 --- a/docs/source/reference/monitoring.md +++ b/docs/source/reference/monitoring.md @@ -3,7 +3,7 @@ This section covers details on monitoring the state of your JupyterHub installation. JupyterHub expose the `/metrics` endpoint that returns text describing its current -operational state formatted in a way [Prometheus](https://prometheus.io/docs/introduction/overview/) understands. +operational state formatted in a way [Prometheus](https://prometheus.io) understands. Prometheus is a separate open source tool that can be configured to repeatedly poll JupyterHub's `/metrics` endpoint to parse and save its current state. @@ -11,7 +11,7 @@ JupyterHub's `/metrics` endpoint to parse and save its current state. By doing so, Prometheus can describe JupyterHub's evolving state over time. This evolving state can then be accessed through Prometheus that expose its underlying storage to those allowed to access it, and be presented with dashboards by a -tool like [Grafana](https://grafana.com/docs/grafana/latest/getting-started/what-is-grafana/). +tool like [Grafana](https://grafana.com). ```{toctree} :maxdepth: 2 diff --git a/docs/source/reference/rest.md b/docs/source/reference/rest.md index 3ac0f423..a7aa2506 100644 --- a/docs/source/reference/rest.md +++ b/docs/source/reference/rest.md @@ -294,7 +294,7 @@ First you must enable named-servers by including the following setting in the `j If you are using the [zero-to-jupyterhub-k8s](https://github.com/jupyterhub/zero-to-jupyterhub-k8s) set-up to run JupyterHub, then instead of editing the `jupyterhub_config.py` file directly, you could pass -the following as part of the `config.yaml` file, as per the [tutorial](https://zero-to-jupyterhub.readthedocs.io/en/latest/): +the following as part of the `config.yaml` file, as per the [tutorial](https://z2jh.jupyter.org/en/latest/): ```bash hub: diff --git a/docs/source/reference/services.md b/docs/source/reference/services.md index 90d755ab..e15c714c 100644 --- a/docs/source/reference/services.md +++ b/docs/source/reference/services.md @@ -405,7 +405,7 @@ and an example of its configuration is found [here](https://github.com/jupyter/n nbviewer can also be run as a Hub-Managed Service as described [nbviewer README][nbviewer example] section on securing the notebook viewer. -[requests]: http://docs.python-requests.org/en/master/ +[requests]: https://docs.python-requests.org/en/master/ [services_auth]: ../api/services.auth.html [nbviewer example]: https://github.com/jupyter/nbviewer#securing-the-notebook-viewer [fastapi example]: https://github.com/jupyterhub/jupyterhub/tree/HEAD/examples/service-fastapi diff --git a/docs/source/reference/spawners.md b/docs/source/reference/spawners.md index a98e7deb..954a4a22 100644 --- a/docs/source/reference/spawners.md +++ b/docs/source/reference/spawners.md @@ -224,7 +224,7 @@ When `Spawner.start` is called, this dictionary is accessible as `self.user_opti ## Writing a custom spawner -If you are interested in building a custom spawner, you can read [this tutorial](http://jupyterhub-tutorial.readthedocs.io/en/latest/spawners.html). +If you are interested in building a custom spawner, you can read [this tutorial](https://jupyterhub-tutorial.readthedocs.io/en/latest/spawners.html). ### Registering custom Spawners via entry points diff --git a/docs/source/reference/websecurity.md b/docs/source/reference/websecurity.md index f63177f7..8ff2cc23 100644 --- a/docs/source/reference/websecurity.md +++ b/docs/source/reference/websecurity.md @@ -131,4 +131,4 @@ If you believe you have found a security vulnerability in JupyterHub, or any Jupyter project, please report it to [security@ipython.org](mailto:security@ipython.org). If you prefer to encrypt your security reports, you can use [this PGP public -key](https://jupyter-notebook.readthedocs.io/en/stable/_downloads/ipython_security.asc). +key](https://jupyter.org/assets/ipython_security.asc). diff --git a/jupyterhub/spawner.py b/jupyterhub/spawner.py index 756fefa7..cb4fad5b 100644 --- a/jupyterhub/spawner.py +++ b/jupyterhub/spawner.py @@ -1118,7 +1118,7 @@ class Spawner(LoggingConfigurable): ssl_alt_names_include_local = Bool( True, config=True, - help="""Whether to include DNS:localhost, IP:127.0.0.1 in alt names""", + help="""Whether to include `DNS:localhost`, `IP:127.0.0.1` in alt names""", ) async def create_certs(self):