跳转到主要内容

JupyterHub:一个多用户Jupyter笔记本服务器

项目描述

技术概述 | 安装 | 配置 | Docker | 贡献 | 许可证 | 帮助和资源


JupyterHub

Latest PyPI version Latest conda-forge version Documentation build status GitHub Workflow Status - Test Test coverage of code GitHub Discourse Gitter

使用JupyterHub,您可以创建一个多用户中心,该中心可以生成、管理和代理多个单用户Jupyter笔记本服务器实例。

Project Jupyter创建JupyterHub以支持多个用户。该中心可以向学生班级、企业数据科学工作组、科学研究项目或高性能计算组提供笔记本服务器。

技术概述

JupyterHub由三个主要参与者组成

  • 多用户中心(tornado进程)
  • 可配置的http 代理(node-http-proxy)
  • 多个单用户Jupyter笔记本服务器(Python/Jupyter/tornado)

基本操作原则是

  • 中心启动一个代理。
  • 代理默认将所有请求转发到中心。
  • 中心处理登录并在需要时生成单用户服务器。
  • 中心配置代理将URL前缀转发到单用户笔记本服务器。

JupyterHub还提供了一个REST API,用于管理和操作中心及其用户。

安装

检查先决条件

  • 基于Linux/Unix的系统

  • Python 3.8或更高版本

  • nodejs/npm

    • 如果您使用conda,conda将为您安装nodejs和npm依赖项。

    • 如果您使用pip,请安装最新版本(至少12.0),nodejs/npm

  • 如果您使用默认的PAM认证器,需要可插拔认证模块(PAM)

  • 用于HTTPS通信的TLS证书和密钥

  • 域名

安装包

使用conda

要安装JupyterHub及其依赖项(包括nodejs/npm)

conda install -c conda-forge jupyterhub

如果您计划在本地运行笔记本服务器,请安装JupyterLab或Jupyter笔记本

conda install jupyterlab
conda install notebook

使用pip

JupyterHub可以使用pip安装,代理可以使用npm安装

npm install -g configurable-http-proxy
python3 -m pip install jupyterhub

如果您计划在本地运行笔记本服务器,您需要安装JupyterLab或Jupyter笔记本

python3 -m pip install --upgrade jupyterlab
python3 -m pip install --upgrade notebook

运行中心服务器

要启动中心服务器,请运行以下命令

jupyterhub

在浏览器中访问http://localhost:8000,并使用您的系统用户名和密码登录。

注意:为了让多个用户登录服务器,您需要以特权用户(如root)的身份运行jupyterhub命令。有关如何以较低权限用户运行服务器(需要更多系统配置)的说明,请参阅wiki

配置

文档的入门部分解释了设置JupyterHub的常见步骤。

JupyterHub教程提供了JupyterHub的深入视频和示例配置。

创建配置文件

生成具有设置和描述的默认配置文件

jupyterhub --generate-config

启动Hub

在特定URL和端口10.0.1.2:443上以https启动Hub

jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert

认证器

认证器 描述
PAM认证器 默认,内置认证器
OAuth认证器 OAuth + JupyterHub认证器 = OAuth认证器
ldap认证器 JupyterHub的简单LDAP认证器插件
kerberos认证器 JupyterHub的Kerberos认证器插件

启动器

启动器 描述
LocalProcessSpawner 默认,内置启动器以本地进程启动单用户服务器
dockerspawner 在Docker容器中启动单用户服务器
kubespawner JupyterHub的Kubernetes启动器
sudospawner 不以root身份启动单用户服务器
systemdspawner 使用systemd启动单用户notebook服务器
batchspawner 适用于使用批量调度软件的集群
yarnspawner 在Hadoop集群上分布式启动单用户notebook服务器
wrapspawner WrapSpawner和ProfilesSpawner允许在运行时配置启动器

Docker

一个Docker镜像为JupyterHub提供了一个基于Docker的基本部署。

重要:quay.io/jupyterhub/jupyterhub镜像仅包含Hub本身,没有配置。通常,需要制作一个衍生镜像,至少包含一个jupyterhub_config.py设置认证器和/或启动器。要运行单用户服务器,这些服务器可能位于与Hub相同的系统上或不在,必须安装Jupyter Notebook版本4或更高版本。

可以使用以下命令启动JupyterHub Docker镜像

docker run -p 8000:8000 -d --name jupyterhub quay.io/jupyterhub/jupyterhub jupyterhub

此命令将创建一个名为jupyterhub的容器,您可以使用docker stop/start来停止和恢复。

Hub服务将在所有接口的8000端口上监听,这使得它在您的桌面或笔记本电脑上测试JupyterHub是一个很好的选择。

如果您想在具有公网IP的计算机上运行Docker,则(必须是)通过在Docker配置中添加ssl选项或使用ssl启用代理来使用ssl保护它。

挂载卷将允许您将数据存储在Docker镜像(主机系统)之外,即使您启动了新的镜像,这些数据也将是持久的。

命令docker exec -it jupyterhub bash将在您的Docker容器中启动一个root shell。您可以使用root shell在容器中创建系统用户。这些帐户将用于JupyterHub默认配置中的认证。

贡献

如果您想为项目做出贡献,请阅读我们的贡献者文档CONTRIBUTING.mdCONTRIBUTING.md文件解释了如何设置开发安装,如何运行测试套件以及如何为文档做出贡献。

要了解项目愿景和未来方向的高级视图,请参阅JupyterHub社区路线图

关于平台支持的说明

JupyterHub支持基于Linux/Unix的系统。

JupyterHub官方不支持Windows。如果您使用在Windows上工作的Spawner和Authenticator,您可能能够在Windows上使用JupyterHub,但默认设置将不会。Windows上报告的错误将不会被接受,测试套件也不会在Windows上运行。但是,修复一些小的Windows兼容性问题(如基本安装)的补丁可能会被接受。对于基于Windows的系统,我们建议在docker容器或Linux虚拟机上运行JupyterHub。

其他参考资料: Tornado在Windows平台上的支持文档

许可证

我们采用共享版权模式,使所有贡献者都能保留其贡献的版权。

所有代码均在修订版BSD许可证的条款下授权。

帮助和资源

我们鼓励您在Jupyter社区论坛上提问和分享想法。您也可以在我们的JupyterHub Gitter频道与我们交流。

JupyterHub遵循Jupyter 社区指南


技术概述 | 安装 | 配置 | Docker | 贡献 | 许可证 | 帮助和资源

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

jupyterhub-5.2.0.tar.gz (16.9 MB 查看哈希值)

上传时间:

构建分布

jupyterhub-5.2.0-py3-none-any.whl (10.7 MB 查看哈希值)

上传时间: Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页