Home
News
Forum
Wiki
Blog
Contents
Gallery
Movies
Downloads
About NSL
If you want to see English page, please click "English" Button at Left.
[
タイトル一覧
|
ページ一覧
|
新規
|
単語検索
|
最終更新
|
ヘルプ
]
JupyterHub/SystemUserSpawner/jupyterhub_config.py
をテンプレートにして作成
[
トップ
]
[ ]
開始行:
***最新の実験用 jupyterhub_config.py
- 2021 07/12
# Configuration file for jupyterhub.
#-------------------------------------------------------...
# Application(SingletonConfigurable) configuration
#-------------------------------------------------------...
## This is an application.
## The date format used by logging formatters for %(asct...
#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S'
## The Logging format template
#c.Application.log_format = '[%(name)s]%(highlevel)s %(m...
## Set the log level by value or name.
#c.Application.log_level = 30
#-------------------------------------------------------...
# JupyterHub(Application) configuration
#-------------------------------------------------------...
## An Application for starting a Multi-User Jupyter Note...
## Maximum number of concurrent servers that can be acti...
#
# Setting this can limit the total resources your users...
#
# An active server is any server that's not fully stopp...
# active from the time it has been requested until the ...
# completely stopped.
#
# If this many user servers are active, users will not ...
# servers until a server is shutdown. Spawn requests wi...
# error asking them to try again.
#
# If set to 0, no limit is enforced.
#c.JupyterHub.active_server_limit = 0
## Duration (in seconds) to determine the number of acti...
#c.JupyterHub.active_user_window = 1800
## Resolution (in seconds) for updating activity
#
# If activity is registered that is less than activity_...
# recent than the current value, the new value will be ...
#
# This avoids too many writes to the Hub database.
#c.JupyterHub.activity_resolution = 30
## Grant admin users permission to access single-user se...
#
# Users should be properly informed if this is enabled.
#c.JupyterHub.admin_access = False
## DEPRECATED since version 0.7.2, use Authenticator.adm...
#c.JupyterHub.admin_users = set()
## Allow named single-user servers per user
#c.JupyterHub.allow_named_servers = False
## Answer yes to any questions (e.g. confirm overwrite)
#c.JupyterHub.answer_yes = False
## PENDING DEPRECATION: consider using services
#
# Dict of token:username to be loaded into the database.
#
# Allows ahead-of-time generation of API tokens for use...
# services, which authenticate as JupyterHub users.
#
# Consider using services for general services that tal...
#c.JupyterHub.api_tokens = {}
## Authentication for prometheus metrics
#c.JupyterHub.authenticate_prometheus = True
## Class for authenticating users.
#
# This should be a subclass of :class:`jupyterh...
#
# with an :meth:`authenticate` method that:
#
# - is a coroutine (asyncio or tornado)
# - returns username on success, None on failure
# - takes two arguments: (handler, data),
# where `handler` is the calling web.RequestH...
# and `data` is the POST form data from the l...
#
# .. versionchanged:: 1.0
# authenticators may be registered via entr...
# e.g. `c.JupyterHub.authenticator_class = ...
#
# Currently installed:
# - default: jupyterhub.auth.PAMAuthenticator
# - dummy: jupyterhub.auth.DummyAuthenticator
# - pam: jupyterhub.auth.PAMAuthenticator
#c.JupyterHub.authenticator_class = 'jupyterhub.auth.Dum...
#c.JupyterHub.authenticator_class = 'nativeauthenticator...
#c.JupyterHub.authenticator_class = 'jupyterhub.auth.PAM...
#c.PAMAuthenticator.open_sessions = False
# for LDAP
c.JupyterHub.authenticator_class = 'ldapauthenticator.LD...
#c.LDAPAuthenticator.server_address = '202.26.150.51'
c.LDAPAuthenticator.server_address = '202.26.144.11'
c.LDAPAuthenticator.use_ssl = True
## 大学の AD template 付き
c.LDAPAuthenticator.lookup_dn = False
c.LDAPAuthenticator.bind_dn_template = [
'cn={username},ou=教員,ou=ユーザー,dc=edutuis,dc=loc...
'cn={username},ou=学生,ou=ユーザー,dc=edutuis,dc=loc...
]
c.LDAPAuthenticator.user_search_base = 'dc=edutuis,dc=lo...
c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
## 大学の AD template なし
#c.LDAPAuthenticator.lookup_dn = True
#c.LDAPAuthenticator.user_search_base = 'dc=edutuis,dc=l...
#c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
#c.LDAPAuthenticator.lookup_dn_search_user = 'cn=ldapaut...
#c.LDAPAuthenticator.lookup_dn_search_password = '*****'
#c.LDAPAuthenticator.lookup_dn_user_dn_attribute = 'cn'
## NSL: username から dn が探せる場合
#c.LDAPAuthenticator.lookup_dn = False
#c.LDAPAuthenticator.bind_dn_template = 'cn={username},o...
## NSL: ツリーを検索する場合
#c.LDAPAuthenticator.lookup_dn = True
#c.LDAPAuthenticator.user_search_base = 'ou=user,dc=nsl,...
#c.LDAPAuthenticator.user_attribute = 'uid'
#c.LDAPAuthenticator.lookup_dn_search_user = 'cn=Manager'
#c.LDAPAuthenticator.lookup_dn_search_password = '*******'
#c.LDAPAuthenticator.lookup_dn_user_dn_attribute = 'cn'
## The base URL of the entire application.
#
# Add this to the beginning of all JupyterHub URLs. Use...
# JupyterHub within an existing website.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.base_url = '/'
##
# My IP Address
my_ip_addr = '172.22.1.75'
## The public facing URL of the whole JupyterHub applica...
#
# This is the address on which the proxy will bind. Set...
c.JupyterHub.bind_url = 'http://'+my_ip_addr+':8000'
## Whether to shutdown the proxy when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub wh...
# running.
#
# Only valid if the proxy was starting by the Hub proce...
#
# If both this and cleanup_servers are False, sending S...
# only shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
#c.JupyterHub.cleanup_proxy = True
## Whether to shutdown single-user servers when the Hub ...
#
# Disable if you want to be able to teardown the Hub wh...
# user servers running.
#
# If both this and cleanup_proxy are False, sending SIG...
# shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
#c.JupyterHub.cleanup_servers = True
## Maximum number of concurrent users that can be spawni...
#
# Spawning lots of servers at the same time can cause p...
# the Hub or the underlying spawning system. Set this l...
# logins from attempting to spawn too many servers at t...
#
# This does not limit the number of total running serve...
# active_server_limit for that.
#
# If more than this many users attempt to spawn at a ti...
# be rejected with a 429 error asking them to try again...
# for some of the spawning services to finish starting ...
# their own.
#
# If set to 0, no limit is enforced.
#c.JupyterHub.concurrent_spawn_limit = 100
## The config file to load
#c.JupyterHub.config_file = 'jupyterhub_config.py'
## DEPRECATED: does nothing
#c.JupyterHub.confirm_no_ssl = False
## Number of days for a login cookie to be valid. Defaul...
#c.JupyterHub.cookie_max_age_days = 14
## The cookie secret to use to encrypt cookies.
#
# Loaded from the JPY_COOKIE_SECRET env variable by def...
#
# Should be exactly 256 bits (32 bytes).
#c.JupyterHub.cookie_secret = b''
## File in which to store the cookie secret.
#c.JupyterHub.cookie_secret_file = 'jupyterhub_cookie_se...
## The location of jupyterhub data files (e.g. /usr/loca...
#c.JupyterHub.data_files_path = '/usr/local/anaconda/env...
## Include any kwargs to pass to the database connection...
# sqlalchemy.create_engine for details.
#c.JupyterHub.db_kwargs = {}
## url for the database. e.g. `sqlite:///jupyterhub.sqli...
c.JupyterHub.db_url = 'sqlite:////var/lib/jupyterhub/jup...
## log all database transactions. This has A LOT of output
#c.JupyterHub.debug_db = False
## DEPRECATED since version 0.8: Use ConfigurableHTTPPro...
#c.JupyterHub.debug_proxy = False
## If named servers are enabled, default name of server ...
# user-redirect.
#c.JupyterHub.default_server_name = ''
## The default URL for users when they arrive (e.g. when...
#
# By default, redirects users to their own server.
#c.JupyterHub.default_url = ''
## Dict authority:dict(files). Specify the key, cert, an...
# authority. This is useful for externally managed prox...
# internal_ssl.
#
# The files dict has this format (you must specify at l...
#
# {
# 'key': '/path/to/key.key',
# 'cert': '/path/to/cert.crt',
# 'ca': '/path/to/ca.crt'
# }
#
# The authorities you can override: 'hub-ca', 'notebook...
# 'proxy-client-ca', and 'services-ca'.
#
# Use with internal_ssl
#c.JupyterHub.external_ssl_authorities = {}
## Register extra tornado Handlers for jupyterhub.
#
# Should be of the form ``("<regex>", Handler)``
#
# The Hub prefix will be added, so `/my-page` will be s...
#c.JupyterHub.extra_handlers = []
## DEPRECATED: use output redirection instead, e.g.
#
# jupyterhub &>> /var/log/jupyterhub.log
#c.JupyterHub.extra_log_file = ''
## Extra log handlers to set on JupyterHub logger
#c.JupyterHub.extra_log_handlers = []
## Generate certs used for internal ssl
#c.JupyterHub.generate_certs = False
## Generate default config file
#c.JupyterHub.generate_config = False
## The URL on which the Hub will listen. This is a priva...
# communication. Typically set in combination with hub_...
# socket, hub_connect_url **must** also be set.
#
# For example:
#
# "http://127.0.0.1:8081"
# "unix+http://%2Fsrv%2Fjupyterhub%2Fjupyterhub.sock"
#
# .. versionadded:: 0.9
c.JupyterHub.hub_bind_url = 'http://'+my_ip_addr+':8081'
## The ip or hostname for proxies and spawners to use fo...
#
# Use when the bind address (`hub_ip`) is 0.0.0.0 or ot...
# the connect address.
#
# Default: when `hub_ip` is 0.0.0.0, use `socket.gethos...
# `hub_ip`.
#
# Note: Some spawners or proxy implementations might no...
# Check your spawner or proxy documentation to see if t...
# requirements.
#
# .. versionadded:: 0.8
c.JupyterHub.hub_connect_ip = my_ip_addr
## DEPRECATED
#
# Use hub_connect_url
#
# .. versionadded:: 0.8
#
# .. deprecated:: 0.9
# Use hub_connect_url
#c.JupyterHub.hub_connect_port = 0
## The URL for connecting to the Hub. Spawners, services...
# this URL to talk to the Hub.
#
# Only needs to be specified if the default hub URL is ...
# using a unix+http:// bind url).
#
# .. seealso::
# JupyterHub.hub_connect_ip
# JupyterHub.hub_bind_url
#
# .. versionadded:: 0.9
#c.JupyterHub.hub_connect_url = ''
## The ip address for the Hub process to *bind* to.
#
# By default, the hub listens on localhost only. This a...
# from the proxy and user servers. You may need to set ...
# for all interfaces if the proxy or user servers are i...
# different host.
#
# See `hub_connect_ip` for cases where the bind and con...
# differ, or `hub_bind_url` for setting the full bind U...
#c.JupyterHub.hub_ip = '127.0.0.1'
c.JupyterHub.hub_ip = '0.0.0.0'
## The internal port for the Hub process.
#
# This is the internal port of the hub itself. It shoul...
# directly. See JupyterHub.port for the public port to ...
# jupyterhub. It is rare that this port should be set e...
# conflict.
#
# See also `hub_ip` for the ip and `hub_bind_url` for s...
c.JupyterHub.hub_port = 8081
## Timeout (in seconds) to wait for spawners to initialize
#
# Checking if spawners are healthy can take a long time...
# active at hub start time.
#
# If it takes longer than this timeout to check, init_s...
# complete in the background and the http server is all...
#
# A timeout of -1 means wait forever, which can mean a ...
# but ensures that the Hub is fully consistent by the t...
# to requests. This matches the behavior of jupyterhub ...
#
# .. versionadded: 1.1.0
#c.JupyterHub.init_spawners_timeout = 10
## The location to store certificates automatically crea...
#
# Use with internal_ssl
#c.JupyterHub.internal_certs_location = 'internal-ssl'
## Enable SSL for all internal communication
#
# This enables end-to-end encryption between all Jupyte...
# JupyterHub will automatically create the necessary ce...
# sign notebook certificates as they're created.
#c.JupyterHub.internal_ssl = False
## The public facing ip of the whole JupyterHub applicat...
# referred to as the proxy).
#
# This is the address on which the proxy will listen. T...
# on all interfaces. This is the only address through w...
# accessed by users.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.ip = my_ip_addr
## Supply extra arguments that will be passed to Jinja e...
#c.JupyterHub.jinja_environment_options = {}
## Interval (in seconds) at which to update last-activit...
#c.JupyterHub.last_activity_interval = 300
## Dict of 'group': ['usernames'] to load at startup.
#
# This strictly *adds* groups and users to groups.
#
# Loading one set of groups, then starting JupyterHub a...
# will not remove users or groups from previous launche...
# through the API.
#c.JupyterHub.load_groups = {}
## Specify path to a logo image to override the Jupyter ...
#c.JupyterHub.logo_file = ''
## Maximum number of concurrent named servers that can b...
# time.
#
# Setting this can limit the total resources a user can...
#
# If set to 0, no limit is enforced.
#c.JupyterHub.named_server_limit_per_user = 0
## File to write PID Useful for daemonizing JupyterHub.
c.JupyterHub.pid_file = '/var/run/jupyterhub.pid'
## The public facing port of the proxy.
#
# This is the port on which the proxy will listen. This...
# which JupyterHub should be accessed by users.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.port = 8000
## DEPRECATED since version 0.8 : Use ConfigurableHTTPPr...
#c.JupyterHub.proxy_api_ip = ''
## DEPRECATED since version 0.8 : Use ConfigurableHTTPPr...
#c.JupyterHub.proxy_api_port = 0
## DEPRECATED since version 0.8: Use ConfigurableHTTPPro...
#c.JupyterHub.proxy_auth_token = ''
## Interval (in seconds) at which to check if the proxy ...
#c.JupyterHub.proxy_check_interval = 30
## The class to use for configuring the JupyterHub proxy.
#
# Should be a subclass of :class:`jupyterhub.pr...
#
# .. versionchanged:: 1.0
# proxies may be registered via entry points,
# e.g. `c.JupyterHub.proxy_class = 'traefik'`
#
# Currently installed:
# - configurable-http-proxy: jupyterhub.proxy.Configu...
# - default: jupyterhub.proxy.ConfigurableHTTPProxy
#c.JupyterHub.proxy_class = 'jupyterhub.proxy.Configurab...
## DEPRECATED since version 0.8. Use ConfigurableHTTPPro...
#c.JupyterHub.proxy_cmd = []
## Recreate all certificates used within JupyterHub on r...
#
# Note: enabling this feature requires restarting all n...
#
# Use with internal_ssl
#c.JupyterHub.recreate_internal_certs = False
## Redirect user to server (if running), instead of cont...
#c.JupyterHub.redirect_to_server = True
## Purge and reset the database.
#c.JupyterHub.reset_db = False
# from https://gist.github.com/marufeuille/596cf6f9e26fa...
from dockerspawner import SystemUserSpawner
from traitlets import Unicode
import pwd, os, grp
class ProjectDockerSpawner(SystemUserSpawner):
dobleArguments = False
#dobleArguments = True
host_homedir_format_string = Unicode(
"/home/{groupname}/{username}",
config = True,
)
image_homedir_format_string = Unicode(
"/home/{groupname}/{username}",
config = True,
)
@property
def host_homedir(self):
if (
self.host_homedir_format_string is not None
and self.host_homedir_format_string != ""
):
homedir = self.host_homedir_format_string.fo...
else:
import pwd
homedir = pwd.getpwnam(self.user.name).pw_dir
return homedir
@property
def homedir(self):
return self.image_homedir_format_string.format(u...
def get_args(self):
args = super(ProjectDockerSpawner, self).get_arg...
if (not self._user_set_cmd) and self.dobleArgume...
args = []
return args
#def get_command(self):
# cmd = super(ProjectDockerSpawner, self).get_com...
# return cmd
#
# '''
# if self._user_set_cmd:
# cmd = self.cmd
# else:
# image_info = yield self.docker("inspect_ima...
# cmd = image_info["Config"]["Cmd"]
# return cmd + self.get_args()
# '''
def template_namespace(self):
d = super(ProjectDockerSpawner, self).template_n...
if self.group_id >= 0:
d['groupname'] = self.get_groupname()
return d
def get_groupname(self):
gname = ''
if self.group_id >= 0:
gname = grp.getgrgid(self.group_id).gr_name
return gname
def get_env(self):
env = super(ProjectDockerSpawner, self).get_env()
if self.group_id >= 0:
#env.update(NB_GID=self.group_id)
import grp
gname = self.get_groupname()
env.update(NB_GROUP=gname)
return env
def start(self):
name = self.user.name
user_data = pwd.getpwnam(name)
user_gid = user_data.pw_gid
gid_list = os.getgrouplist(name, user_gid)
work_dir = self.notebook_dir
self.volumes['jupyterhub-user-{username}'] = wor...
for gid in gid_list:
gname = grp.getgrgid(gid).gr_name
if gname.startswith("project-"):
dirname = gname.replace("project-", "")
self.volumes[gname] = work_dir + '/proje...
return super(ProjectDockerSpawner, self).start()
## Interval (in seconds) at which to check connectivity ...
# endpoints.
#c.JupyterHub.service_check_interval = 60
## Dict of token:servicename to be loaded into the datab...
#
# Allows ahead-of-time generation of API tokens for use...
# services.
#c.JupyterHub.service_tokens = {}
## List of service specification dictionaries.
#
# A service
#
# For instance::
#
# services = [
# {
# 'name': 'cull_idle',
# 'command': ['/path/to/cull_idle_servers.p...
# },
# {
# 'name': 'formgrader',
# 'url': 'http://127.0.0.1:1234',
# 'api_token': 'super-secret',
# 'environment':
# }
# ]
#c.JupyterHub.services = []
## Shuts down all user servers on logout
#c.JupyterHub.shutdown_on_logout = False
## The class to use for spawning single-user servers.
#
# Should be a subclass of :class:`jupyterhub.sp...
#
# .. versionchanged:: 1.0
# spawners may be registered via entry poin...
# e.g. `c.JupyterHub.spawner_class = 'local...
#
# Currently installed:
# - default: jupyterhub.spawner.LocalProcessSpawner
# - localprocess: jupyterhub.spawner.LocalProcessSpaw...
# - simple: jupyterhub.spawner.SimpleLocalProcessSpaw...
# - docker: dockerspawner.DockerSpawner
# - docker-swarm: dockerspawner.SwarmSpawner
# - docker-system-user: dockerspawner.SystemUserSpawner
#c.JupyterHub.spawner_class = 'jupyterhub.spawner.LocalP...
#c.JupyterHub.spawner_class = 'coursewareuserspawner.Cou...
#c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawn...
#c.JupyterHub.spawner_class = 'dockerspawner.SwarmSpawner'
#c.JupyterHub.spawner_class = 'dockerspawner.SystemUserS...
#c.JupyterHub.spawner_class = 'dockerspawner.NSLDockerSp...
c.JupyterHub.spawner_class = ProjectDockerSpawner
#c.DockerSpawner.image = 'niicloudoperation/jupyterhub-s...
#c.DockerSpawner.image = 'niicloudoperation/notebook'
#c.DockerSpawner.image = 'jupyter/datascience-notebook'
#c.DockerSpawner.image = 'jupyterhub-test-note'
#c.DockerSpawner.image = 'jupyterhub/singleuser'
#c.DockerSpawner.image = 'jupyter_single-project'
c.DockerSpawner.image = 'jupyter_single-devel'
#c.DockerSpawner.image_whitelist = {
# "deepdetect-gpu (Tensorflow+PyTorch)": "jolibrain/j...
# "tensorflow-2-gpu (Tensorflow 2.0)": "d4n1el/tensor...
# "datascience-gpu (Python+Julia+R)": "d4n1el/datasci...
# "tensorflow-cpu (Tensorflow)": "jupyter/tensorflow-...
# "datascience-cpu (Python+Julia+R)": "jupyter/datasc...
# "TEST" : "jupyterhub-test"
#}
c.DockerSpawner.remove_containers = True
c.DockerSpawner.remove = True
c.DockerSpawner.extra_create_kwargs = {'user': 'root'}
#c.DockerSpawner.extra_host_config = {'runtime': 'nvidia'}
c.Spawner.environment = {'GRANT_SUDO': 'yes'}
#notebook_dir = '/home/jovyan/work'
#notebook_dir = '/home/{username}/work'
notebook_dir = '/home/{groupname}/{username}/work'
c.DockerSpawner.notebook_dir = notebook_dir
#c.DockerSpawner.volumes = { 'jupyterhub-user-{username}...
#from jupyter_client.localinterfaces import public_ips
#c.JupyterHub.hub_ip = public_ips()[0]
#c.Spawner.args = ['EEEE=ABC']
#c.SystemUserSpawner.args = ['--user-name={username}', '...
#c.Spawner.args = ['--userxxxnameame', notebook_dir]
#c.DockerSpawner.args = ['--aaaa', '{username}']
#c.DockerSpawner.args = ['--username={username}']
##
#c.DockerSpawner.image = 'jupyterhub/singleuser'
#c.DockerSpawner.remove = True
#c.DockerSpawner.extra_create_kwargs = {'user': 'root'}
#c.Spawner.environment = {'GRANT_SUDO': 'yes'}
#notebook_dir = '/home/jovyan/work'
#c.DockerSpawner.notebook_dir = notebook_dir
#c.DockerSpawner.volumes = { 'jupyterhub-user-{username}...
#from jupyter_client.localinterfaces import public_ips
## Path to SSL certificate file for the public facing in...
#
# When setting this, you should also set ssl_key
#c.JupyterHub.ssl_cert = ''
## Path to SSL key file for the public facing interface ...
#
# When setting this, you should also set ssl_cert
#c.JupyterHub.ssl_key = ''
## Host to send statsd metrics to. An empty string (the ...
# metrics.
#c.JupyterHub.statsd_host = ''
## Port on which to send statsd metrics about the hub
#c.JupyterHub.statsd_port = 8125
## Prefix to use for all metrics sent by jupyterhub to s...
#c.JupyterHub.statsd_prefix = 'jupyterhub'
## Run single-user servers on subdomains of this host.
#
# This should be the full `https://hub.domain.tld[:port...
#
# Provides additional cross-site protections for javasc...
# user servers.
#
# Requires `<username>.hub.domain.tld` to resolve to th...
# `hub.domain.tld`.
#
# In general, this is most easily achieved with wildcar...
#
# When using SSL (i.e. always) this also requires a wil...
#c.JupyterHub.subdomain_host = ''
## Paths to search for jinja templates, before using the...
#c.JupyterHub.template_paths = []
## Extra variables to be passed into jinja templates
#c.JupyterHub.template_vars = {}
## Extra settings overrides to pass to the tornado appli...
#c.JupyterHub.tornado_settings = {}
## Trust user-provided tokens (via JupyterHub.service_to...
# entropy.
#
# If you are not inserting additional tokens via config...
# has no effect.
#
# In JupyterHub 0.8, internally generated tokens do not...
# hashing because the hashing is costly and does not in...
# already-good UUIDs.
#
# User-provided tokens, on the other hand, are not trus...
# by default, and are passed through many rounds of has...
# entropy of the key (i.e. user-provided tokens are tre...
# of random keys). These keys are more costly to check.
#
# If your inserted tokens are generated by a good-quali...
# `openssl rand -hex 32`, then you can set this flag to...
# of checking authentication tokens.
#c.JupyterHub.trust_user_provided_tokens = False
## Names to include in the subject alternative name.
#
# These names will be used for server name verification...
# JupyterHub is being run behind a reverse proxy or ser...
# different hosts.
#
# Use with internal_ssl
#c.JupyterHub.trusted_alt_names = []
## Downstream proxy IP addresses to trust.
#
# This sets the list of IP addresses that are trusted a...
# processing the `X-Forwarded-For` header. For example,...
# used for TLS termination, its IP address should be ad...
# ensure the correct client IP addresses are recorded i...
# proxy server's IP address.
#c.JupyterHub.trusted_downstream_ips = []
## Upgrade the database automatically on start.
#
# Only safe if database is regularly backed up. Only SQ...
# backed up to a local file automatically.
#c.JupyterHub.upgrade_db = False
## Callable to affect behavior of /user-redirect/
#
# Receives 4 parameters: 1. path - URL path that was pr...
# redirect/ 2. request - A Tornado HTTPServerRequest re...
# request. 3. user - The currently authenticated user. ...
# base_url of the current hub, for relative redirects
#
# It should return the new URL to redirect to, or None ...
# behavior.
#c.JupyterHub.user_redirect_hook = None
#-------------------------------------------------------...
# Spawner(LoggingConfigurable) configuration
#-------------------------------------------------------...
## Base class for spawning single-user notebook servers.
#
# Subclass this, and override the following methods:
#
# - load_state - get_state - start - stop - poll
#
# As JupyterHub supports multiple users, an instance of...
# created for each user. If there are 20 JupyterHub use...
# instances of the subclass.
## Extra arguments to be passed to the single-user server.
#
# Some spawners allow shell-style expansion here, allow...
# environment variables here. Most, including the defau...
# documentation for your spawner to verify!
#c.Spawner.args = []
## An optional hook function that you can implement to p...
# spawner after it has been initialized but before it s...
# dictionary may be set by the `.authenticate()` method...
# This hook enables you to pass some or all of that inf...
#
# Example::
#
# def userdata_hook(spawner, auth_state):
# spawner.userdata = auth_state["userdata"]
#
# c.Spawner.auth_state_hook = userdata_hook
#c.Spawner.auth_state_hook = None
## The command used for starting the single-user server.
#
# Provide either a string or a list containing the path...
# command. Extra arguments, other than this path, shoul...
#
# This is usually set if you want to start the single-u...
# python environment (with virtualenv/conda) than Jupyt...
#
# Some spawners allow shell-style expansion here, allow...
# environment variables. Most, including the default, d...
# documentation for your spawner to verify!
#c.Spawner.cmd = ['jupyterhub-singleuser']
## Maximum number of consecutive failures to allow befor...
# JupyterHub.
#
# This helps JupyterHub recover from a certain class of...
# launch in contexts where the Hub is automatically res...
# docker, kubernetes).
#
# A limit of 0 means no limit and consecutive failures ...
#c.Spawner.consecutive_failure_limit = 0
## Minimum number of cpu-cores a single-user notebook se...
# have available.
#
# If this value is set to 0.5, allows use of 50% of one...
# set to 2, allows use of up to 2 CPUs.
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.cpu_guarantee = None
## Maximum number of cpu-cores a single-user notebook se...
#
# If this value is set to 0.5, allows use of 50% of one...
# set to 2, allows use of up to 2 CPUs.
#
# The single-user notebook server will never be schedul...
# more cpu-cores than this. There is no guarantee that ...
# cpu-cores.
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.cpu_limit = None
## Enable debug-logging of the single-user server
#c.Spawner.debug = False
## The URL the single-user server should start in.
#
# `{username}` will be expanded to the user's username
#
# Example uses:
#
# - You can set `notebook_dir` to `/` and `default_url`...
# navigate the whole filesystem from their notebook s...
# - Start with `/notebooks` instead of `/tree` if `defa...
# - You can set this to `/lab` to have JupyterLab start...
c.Spawner.default_url = '/lab'
## Disable per-user configuration of single-user servers.
#
# When starting the user's single-user server, any conf...
# user's $HOME directory will be ignored.
#
# Note: a user could circumvent this if the user modifi...
# environment, such as when they have their own conda e...
# / containers.
#c.Spawner.disable_user_config = False
## Whitelist of environment variables for the single-use...
# the JupyterHub process.
#
# This whitelist is used to ensure that sensitive infor...
# process's environment (such as `CONFIGPROXY_AUTH_TOKE...
# single-user server's process.
#c.Spawner.env_keep = ['PATH', 'PYTHONPATH', 'CONDA_ROOT...
## Extra environment variables to set for the single-use...
#
# Environment variables that end up in the single-user ...
# - This `environment` configurable
# - The JupyterHub process' environment variables tha...
# - Variables to establish contact between the single...
#
# The `environment` configurable should be set by Jupyt...
# add installation specific environment variables. It i...
# the name of the environment variable, and the value c...
# callable. If it is a callable, it will be called with...
# spawner instance), and should return a string fairly ...
# operations please!).
#
# Note that the spawner class' interface is not guarant...
# across upgrades, so if you are using the callable tak...
# continues to work after upgrades!
#c.Spawner.environment = {}
## Timeout (in seconds) before giving up on a spawned HT...
#
# Once a server has successfully been spawned, this is ...
# wait before assuming that the server is unable to acc...
#c.Spawner.http_timeout = 30
## The IP address (or hostname) the single-user server s...
#
# The JupyterHub proxy implementation should be able to...
# interface.
#c.Spawner.ip = ''
## Minimum number of bytes a single-user notebook server...
# available.
#
# Allows the following suffixes:
# - K -> Kilobytes
# - M -> Megabytes
# - G -> Gigabytes
# - T -> Terabytes
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.mem_guarantee = None
## Maximum number of bytes a single-user notebook server...
#
# Allows the following suffixes:
# - K -> Kilobytes
# - M -> Megabytes
# - G -> Gigabytes
# - T -> Terabytes
#
# If the single user server tries to allocate more memo...
# fail. There is no guarantee that the single-user note...
# to allocate this much memory - only that it can not a...
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.mem_limit = None
## Path to the notebook directory for the single-user se...
#
# The user sees a file listing of this directory when t...
# started. The current interface does not easily allow ...
# subdirectories in this directory's tree.
#
# `~` will be expanded to the home directory of the use...
# replaced with the name of the user.
#
# Note that this does *not* prevent users from accessin...
# path! They can do so with many other means.
#c.Spawner.notebook_dir = '/home/jupyter'
#c.Spawner.notebook_dir = '~/notebook'
## An HTML form for options a user can specify on launch...
#
# The surrounding `<form>` element and the submit butto...
#
# For example:
#
# .. code:: html
#
# Set your key:
# <input name="key" val="default_key"></input>
# <br>
# Choose a letter:
# <select name="letter" multiple="true">
# <option value="A">The letter A</option>
# <option value="B">The letter B</option>
# </select>
#
# The data from this form submission will be passed on ...
# `self.user_options`
#
# Instead of a form snippet string, this could also be ...
# one parameter the current spawner instance and return...
# will be called asynchronously if it returns a future,...
# that the interface of the spawner class is not deemed...
# so using this functionality might cause your JupyterH...
#c.Spawner.options_form = traitlets.Undefined
## Interval (in seconds) on which to poll the spawner fo...
# status.
#
# At every poll interval, each spawner's `.poll` method...
# if the single-user server is still running. If it isn...
# JupyterHub modifies its own state accordingly and rem...
# from the configurable proxy.
#c.Spawner.poll_interval = 30
## The port for single-user servers to listen on.
#
# Defaults to `0`, which uses a randomly allocated port...
#
# If set to a non-zero value, all Spawners will use the...
# makes sense if each server is on a different address,...
#
# New in version 0.7.
#c.Spawner.port = 0
## An optional hook function that you can implement to d...
# stops.
#
# This can be set independent of any concrete spawner i...
#c.Spawner.post_stop_hook = None
## An optional hook function that you can implement to d...
# before the spawner starts. For example, create a dire...
# load initial content.
#
# This can be set independent of any concrete spawner i...
#
# This maybe a coroutine.
#
# Example::
#
# from subprocess import check_call
# def my_hook(spawner):
# username = spawner.user.name
# check_call(['./examples/bootstrap-script/boot...
#
# c.Spawner.pre_spawn_hook = my_hook
#c.Spawner.pre_spawn_hook = None
## List of SSL alt names
#
# May be set in config if all spawners should have the ...
# runtime by Spawner that know their names.
#c.Spawner.ssl_alt_names = []
## Whether to include DNS:localhost, IP:127.0.0.1 in alt...
#c.Spawner.ssl_alt_names_include_local = True
## Timeout (in seconds) before giving up on starting of ...
#
# This is the timeout for start to return, not the time...
# respond. Callers of spawner.start will assume that st...
# takes longer than this. start should return when the ...
# and its location is known.
#c.Spawner.start_timeout = 60
#-------------------------------------------------------...
# Authenticator(LoggingConfigurable) configuration
#-------------------------------------------------------...
## Base class for implementing an authentication provide...
## Set of users that will have admin rights on this Jupy...
#
# Admin users have extra privileges:
# - Use the admin panel to see list of users logged in
# - Add / remove users in some authenticators
# - Restart / halt the hub
# - Start / stop users' single-user servers
# - Can access each individual users' single-user serv...
#
# Admin access should be treated the same way root acce...
#
# Defaults to an empty set, in which case no user has a...
#c.Authenticator.admin_users = set()
c.Authenticator.admin_users = {'admin'}
## The max age (in seconds) of authentication info befor...
# user auth info.
#
# Refreshing auth info allows, e.g. requesting/re-valid...
#
# See :meth:`.refresh_user` for what happens when user ...
# (nothing by default).
#c.Authenticator.auth_refresh_age = 300
## Automatically begin the login process
#
# rather than starting with a "Login with..." link at `...
#
# To work, `.login_url()` must give a URL other than th...
# such as an oauth handler or another automatic login h...
# `.get_handlers()`.
#
# .. versionadded:: 0.8
#c.Authenticator.auto_login = False
## Blacklist of usernames that are not allowed to log in.
#
# Use this with supported authenticators to restrict wh...
# This is an additional blacklist that further restrict...
# restrictions the authenticator has in place.
#
# If empty, does not perform any additional restriction.
#
# .. versionadded: 0.9
#c.Authenticator.blacklist = set()
## Enable persisting auth_state (if available).
#
# auth_state will be encrypted and stored in the Hub's ...
# include things like authentication tokens, etc. to be...
# environment variables.
#
# Encrypting auth_state requires the cryptography packa...
#
# Additionally, the JUPYTERHUB_CRYPT_KEY environment va...
# (or more, separated by ;) 32B encryption keys. These ...
# hex-encoded.
#
# If encryption is unavailable, auth_state cannot be pe...
#
# New in JupyterHub 0.8
#c.Authenticator.enable_auth_state = False
## An optional hook function that you can implement to d...
# during authentication. For example, loading user acco...
# external system.
#
# This function is called after the user has passed all...
# and is ready to successfully authenticate. This funct...
# authentication dict reguardless of changes to it.
#
# This maybe a coroutine.
#
# .. versionadded: 1.0
#
# Example::
#
# import os, pwd
# def my_hook(authenticator, handler, authenticatio...
# user_data = pwd.getpwnam(authentication['name...
# spawn_data = {
# 'pw_data': user_data
# 'gid_list': os.getgrouplist(authenticatio...
# }
#
# if authentication['auth_state'] is None:
# authentication['auth_state'] = {}
# authentication['auth_state']['spawn_data'] = ...
#
# return authentication
#
# c.Authenticator.post_auth_hook = my_hook
#c.Authenticator.post_auth_hook = None
## Force refresh of auth prior to spawn.
#
# This forces :meth:`.refresh_user` to be called prior ...
# ensure that auth state is up-to-date.
#
# This can be important when e.g. auth tokens that may ...
# to the spawner via environment variables from auth_st...
#
# If refresh_user cannot refresh the user auth data, la...
# user logs in again.
#c.Authenticator.refresh_pre_spawn = False
## Dictionary mapping authenticator usernames to Jupyter...
#
# Primarily used to normalize OAuth user names to local...
#c.Authenticator.username_map = {}
## Regular expression pattern that all valid usernames m...
#
# If a username does not match the pattern specified he...
# not be attempted.
#
# If not set, allow any username.
#c.Authenticator.username_pattern = ''
## Whitelist of usernames that are allowed to log in.
#
# Use this with supported authenticators to restrict wh...
# This is an additional whitelist that further restrict...
# restrictions the authenticator has in place.
#
# If empty, does not perform any additional restriction.
#c.Authenticator.whitelist = set()
#-------------------------------------------------------...
# CryptKeeper(SingletonConfigurable) configuration
#-------------------------------------------------------...
## Encapsulate encryption configuration
#
# Use via the encryption_config singleton below.
##
#c.CryptKeeper.keys = []
## The number of threads to allocate for encryption
#c.CryptKeeper.n_threads = 16
終了行:
***最新の実験用 jupyterhub_config.py
- 2021 07/12
# Configuration file for jupyterhub.
#-------------------------------------------------------...
# Application(SingletonConfigurable) configuration
#-------------------------------------------------------...
## This is an application.
## The date format used by logging formatters for %(asct...
#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S'
## The Logging format template
#c.Application.log_format = '[%(name)s]%(highlevel)s %(m...
## Set the log level by value or name.
#c.Application.log_level = 30
#-------------------------------------------------------...
# JupyterHub(Application) configuration
#-------------------------------------------------------...
## An Application for starting a Multi-User Jupyter Note...
## Maximum number of concurrent servers that can be acti...
#
# Setting this can limit the total resources your users...
#
# An active server is any server that's not fully stopp...
# active from the time it has been requested until the ...
# completely stopped.
#
# If this many user servers are active, users will not ...
# servers until a server is shutdown. Spawn requests wi...
# error asking them to try again.
#
# If set to 0, no limit is enforced.
#c.JupyterHub.active_server_limit = 0
## Duration (in seconds) to determine the number of acti...
#c.JupyterHub.active_user_window = 1800
## Resolution (in seconds) for updating activity
#
# If activity is registered that is less than activity_...
# recent than the current value, the new value will be ...
#
# This avoids too many writes to the Hub database.
#c.JupyterHub.activity_resolution = 30
## Grant admin users permission to access single-user se...
#
# Users should be properly informed if this is enabled.
#c.JupyterHub.admin_access = False
## DEPRECATED since version 0.7.2, use Authenticator.adm...
#c.JupyterHub.admin_users = set()
## Allow named single-user servers per user
#c.JupyterHub.allow_named_servers = False
## Answer yes to any questions (e.g. confirm overwrite)
#c.JupyterHub.answer_yes = False
## PENDING DEPRECATION: consider using services
#
# Dict of token:username to be loaded into the database.
#
# Allows ahead-of-time generation of API tokens for use...
# services, which authenticate as JupyterHub users.
#
# Consider using services for general services that tal...
#c.JupyterHub.api_tokens = {}
## Authentication for prometheus metrics
#c.JupyterHub.authenticate_prometheus = True
## Class for authenticating users.
#
# This should be a subclass of :class:`jupyterh...
#
# with an :meth:`authenticate` method that:
#
# - is a coroutine (asyncio or tornado)
# - returns username on success, None on failure
# - takes two arguments: (handler, data),
# where `handler` is the calling web.RequestH...
# and `data` is the POST form data from the l...
#
# .. versionchanged:: 1.0
# authenticators may be registered via entr...
# e.g. `c.JupyterHub.authenticator_class = ...
#
# Currently installed:
# - default: jupyterhub.auth.PAMAuthenticator
# - dummy: jupyterhub.auth.DummyAuthenticator
# - pam: jupyterhub.auth.PAMAuthenticator
#c.JupyterHub.authenticator_class = 'jupyterhub.auth.Dum...
#c.JupyterHub.authenticator_class = 'nativeauthenticator...
#c.JupyterHub.authenticator_class = 'jupyterhub.auth.PAM...
#c.PAMAuthenticator.open_sessions = False
# for LDAP
c.JupyterHub.authenticator_class = 'ldapauthenticator.LD...
#c.LDAPAuthenticator.server_address = '202.26.150.51'
c.LDAPAuthenticator.server_address = '202.26.144.11'
c.LDAPAuthenticator.use_ssl = True
## 大学の AD template 付き
c.LDAPAuthenticator.lookup_dn = False
c.LDAPAuthenticator.bind_dn_template = [
'cn={username},ou=教員,ou=ユーザー,dc=edutuis,dc=loc...
'cn={username},ou=学生,ou=ユーザー,dc=edutuis,dc=loc...
]
c.LDAPAuthenticator.user_search_base = 'dc=edutuis,dc=lo...
c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
## 大学の AD template なし
#c.LDAPAuthenticator.lookup_dn = True
#c.LDAPAuthenticator.user_search_base = 'dc=edutuis,dc=l...
#c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
#c.LDAPAuthenticator.lookup_dn_search_user = 'cn=ldapaut...
#c.LDAPAuthenticator.lookup_dn_search_password = '*****'
#c.LDAPAuthenticator.lookup_dn_user_dn_attribute = 'cn'
## NSL: username から dn が探せる場合
#c.LDAPAuthenticator.lookup_dn = False
#c.LDAPAuthenticator.bind_dn_template = 'cn={username},o...
## NSL: ツリーを検索する場合
#c.LDAPAuthenticator.lookup_dn = True
#c.LDAPAuthenticator.user_search_base = 'ou=user,dc=nsl,...
#c.LDAPAuthenticator.user_attribute = 'uid'
#c.LDAPAuthenticator.lookup_dn_search_user = 'cn=Manager'
#c.LDAPAuthenticator.lookup_dn_search_password = '*******'
#c.LDAPAuthenticator.lookup_dn_user_dn_attribute = 'cn'
## The base URL of the entire application.
#
# Add this to the beginning of all JupyterHub URLs. Use...
# JupyterHub within an existing website.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.base_url = '/'
##
# My IP Address
my_ip_addr = '172.22.1.75'
## The public facing URL of the whole JupyterHub applica...
#
# This is the address on which the proxy will bind. Set...
c.JupyterHub.bind_url = 'http://'+my_ip_addr+':8000'
## Whether to shutdown the proxy when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub wh...
# running.
#
# Only valid if the proxy was starting by the Hub proce...
#
# If both this and cleanup_servers are False, sending S...
# only shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
#c.JupyterHub.cleanup_proxy = True
## Whether to shutdown single-user servers when the Hub ...
#
# Disable if you want to be able to teardown the Hub wh...
# user servers running.
#
# If both this and cleanup_proxy are False, sending SIG...
# shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
#c.JupyterHub.cleanup_servers = True
## Maximum number of concurrent users that can be spawni...
#
# Spawning lots of servers at the same time can cause p...
# the Hub or the underlying spawning system. Set this l...
# logins from attempting to spawn too many servers at t...
#
# This does not limit the number of total running serve...
# active_server_limit for that.
#
# If more than this many users attempt to spawn at a ti...
# be rejected with a 429 error asking them to try again...
# for some of the spawning services to finish starting ...
# their own.
#
# If set to 0, no limit is enforced.
#c.JupyterHub.concurrent_spawn_limit = 100
## The config file to load
#c.JupyterHub.config_file = 'jupyterhub_config.py'
## DEPRECATED: does nothing
#c.JupyterHub.confirm_no_ssl = False
## Number of days for a login cookie to be valid. Defaul...
#c.JupyterHub.cookie_max_age_days = 14
## The cookie secret to use to encrypt cookies.
#
# Loaded from the JPY_COOKIE_SECRET env variable by def...
#
# Should be exactly 256 bits (32 bytes).
#c.JupyterHub.cookie_secret = b''
## File in which to store the cookie secret.
#c.JupyterHub.cookie_secret_file = 'jupyterhub_cookie_se...
## The location of jupyterhub data files (e.g. /usr/loca...
#c.JupyterHub.data_files_path = '/usr/local/anaconda/env...
## Include any kwargs to pass to the database connection...
# sqlalchemy.create_engine for details.
#c.JupyterHub.db_kwargs = {}
## url for the database. e.g. `sqlite:///jupyterhub.sqli...
c.JupyterHub.db_url = 'sqlite:////var/lib/jupyterhub/jup...
## log all database transactions. This has A LOT of output
#c.JupyterHub.debug_db = False
## DEPRECATED since version 0.8: Use ConfigurableHTTPPro...
#c.JupyterHub.debug_proxy = False
## If named servers are enabled, default name of server ...
# user-redirect.
#c.JupyterHub.default_server_name = ''
## The default URL for users when they arrive (e.g. when...
#
# By default, redirects users to their own server.
#c.JupyterHub.default_url = ''
## Dict authority:dict(files). Specify the key, cert, an...
# authority. This is useful for externally managed prox...
# internal_ssl.
#
# The files dict has this format (you must specify at l...
#
# {
# 'key': '/path/to/key.key',
# 'cert': '/path/to/cert.crt',
# 'ca': '/path/to/ca.crt'
# }
#
# The authorities you can override: 'hub-ca', 'notebook...
# 'proxy-client-ca', and 'services-ca'.
#
# Use with internal_ssl
#c.JupyterHub.external_ssl_authorities = {}
## Register extra tornado Handlers for jupyterhub.
#
# Should be of the form ``("<regex>", Handler)``
#
# The Hub prefix will be added, so `/my-page` will be s...
#c.JupyterHub.extra_handlers = []
## DEPRECATED: use output redirection instead, e.g.
#
# jupyterhub &>> /var/log/jupyterhub.log
#c.JupyterHub.extra_log_file = ''
## Extra log handlers to set on JupyterHub logger
#c.JupyterHub.extra_log_handlers = []
## Generate certs used for internal ssl
#c.JupyterHub.generate_certs = False
## Generate default config file
#c.JupyterHub.generate_config = False
## The URL on which the Hub will listen. This is a priva...
# communication. Typically set in combination with hub_...
# socket, hub_connect_url **must** also be set.
#
# For example:
#
# "http://127.0.0.1:8081"
# "unix+http://%2Fsrv%2Fjupyterhub%2Fjupyterhub.sock"
#
# .. versionadded:: 0.9
c.JupyterHub.hub_bind_url = 'http://'+my_ip_addr+':8081'
## The ip or hostname for proxies and spawners to use fo...
#
# Use when the bind address (`hub_ip`) is 0.0.0.0 or ot...
# the connect address.
#
# Default: when `hub_ip` is 0.0.0.0, use `socket.gethos...
# `hub_ip`.
#
# Note: Some spawners or proxy implementations might no...
# Check your spawner or proxy documentation to see if t...
# requirements.
#
# .. versionadded:: 0.8
c.JupyterHub.hub_connect_ip = my_ip_addr
## DEPRECATED
#
# Use hub_connect_url
#
# .. versionadded:: 0.8
#
# .. deprecated:: 0.9
# Use hub_connect_url
#c.JupyterHub.hub_connect_port = 0
## The URL for connecting to the Hub. Spawners, services...
# this URL to talk to the Hub.
#
# Only needs to be specified if the default hub URL is ...
# using a unix+http:// bind url).
#
# .. seealso::
# JupyterHub.hub_connect_ip
# JupyterHub.hub_bind_url
#
# .. versionadded:: 0.9
#c.JupyterHub.hub_connect_url = ''
## The ip address for the Hub process to *bind* to.
#
# By default, the hub listens on localhost only. This a...
# from the proxy and user servers. You may need to set ...
# for all interfaces if the proxy or user servers are i...
# different host.
#
# See `hub_connect_ip` for cases where the bind and con...
# differ, or `hub_bind_url` for setting the full bind U...
#c.JupyterHub.hub_ip = '127.0.0.1'
c.JupyterHub.hub_ip = '0.0.0.0'
## The internal port for the Hub process.
#
# This is the internal port of the hub itself. It shoul...
# directly. See JupyterHub.port for the public port to ...
# jupyterhub. It is rare that this port should be set e...
# conflict.
#
# See also `hub_ip` for the ip and `hub_bind_url` for s...
c.JupyterHub.hub_port = 8081
## Timeout (in seconds) to wait for spawners to initialize
#
# Checking if spawners are healthy can take a long time...
# active at hub start time.
#
# If it takes longer than this timeout to check, init_s...
# complete in the background and the http server is all...
#
# A timeout of -1 means wait forever, which can mean a ...
# but ensures that the Hub is fully consistent by the t...
# to requests. This matches the behavior of jupyterhub ...
#
# .. versionadded: 1.1.0
#c.JupyterHub.init_spawners_timeout = 10
## The location to store certificates automatically crea...
#
# Use with internal_ssl
#c.JupyterHub.internal_certs_location = 'internal-ssl'
## Enable SSL for all internal communication
#
# This enables end-to-end encryption between all Jupyte...
# JupyterHub will automatically create the necessary ce...
# sign notebook certificates as they're created.
#c.JupyterHub.internal_ssl = False
## The public facing ip of the whole JupyterHub applicat...
# referred to as the proxy).
#
# This is the address on which the proxy will listen. T...
# on all interfaces. This is the only address through w...
# accessed by users.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.ip = my_ip_addr
## Supply extra arguments that will be passed to Jinja e...
#c.JupyterHub.jinja_environment_options = {}
## Interval (in seconds) at which to update last-activit...
#c.JupyterHub.last_activity_interval = 300
## Dict of 'group': ['usernames'] to load at startup.
#
# This strictly *adds* groups and users to groups.
#
# Loading one set of groups, then starting JupyterHub a...
# will not remove users or groups from previous launche...
# through the API.
#c.JupyterHub.load_groups = {}
## Specify path to a logo image to override the Jupyter ...
#c.JupyterHub.logo_file = ''
## Maximum number of concurrent named servers that can b...
# time.
#
# Setting this can limit the total resources a user can...
#
# If set to 0, no limit is enforced.
#c.JupyterHub.named_server_limit_per_user = 0
## File to write PID Useful for daemonizing JupyterHub.
c.JupyterHub.pid_file = '/var/run/jupyterhub.pid'
## The public facing port of the proxy.
#
# This is the port on which the proxy will listen. This...
# which JupyterHub should be accessed by users.
#
# .. deprecated: 0.9
# Use JupyterHub.bind_url
#c.JupyterHub.port = 8000
## DEPRECATED since version 0.8 : Use ConfigurableHTTPPr...
#c.JupyterHub.proxy_api_ip = ''
## DEPRECATED since version 0.8 : Use ConfigurableHTTPPr...
#c.JupyterHub.proxy_api_port = 0
## DEPRECATED since version 0.8: Use ConfigurableHTTPPro...
#c.JupyterHub.proxy_auth_token = ''
## Interval (in seconds) at which to check if the proxy ...
#c.JupyterHub.proxy_check_interval = 30
## The class to use for configuring the JupyterHub proxy.
#
# Should be a subclass of :class:`jupyterhub.pr...
#
# .. versionchanged:: 1.0
# proxies may be registered via entry points,
# e.g. `c.JupyterHub.proxy_class = 'traefik'`
#
# Currently installed:
# - configurable-http-proxy: jupyterhub.proxy.Configu...
# - default: jupyterhub.proxy.ConfigurableHTTPProxy
#c.JupyterHub.proxy_class = 'jupyterhub.proxy.Configurab...
## DEPRECATED since version 0.8. Use ConfigurableHTTPPro...
#c.JupyterHub.proxy_cmd = []
## Recreate all certificates used within JupyterHub on r...
#
# Note: enabling this feature requires restarting all n...
#
# Use with internal_ssl
#c.JupyterHub.recreate_internal_certs = False
## Redirect user to server (if running), instead of cont...
#c.JupyterHub.redirect_to_server = True
## Purge and reset the database.
#c.JupyterHub.reset_db = False
# from https://gist.github.com/marufeuille/596cf6f9e26fa...
from dockerspawner import SystemUserSpawner
from traitlets import Unicode
import pwd, os, grp
class ProjectDockerSpawner(SystemUserSpawner):
dobleArguments = False
#dobleArguments = True
host_homedir_format_string = Unicode(
"/home/{groupname}/{username}",
config = True,
)
image_homedir_format_string = Unicode(
"/home/{groupname}/{username}",
config = True,
)
@property
def host_homedir(self):
if (
self.host_homedir_format_string is not None
and self.host_homedir_format_string != ""
):
homedir = self.host_homedir_format_string.fo...
else:
import pwd
homedir = pwd.getpwnam(self.user.name).pw_dir
return homedir
@property
def homedir(self):
return self.image_homedir_format_string.format(u...
def get_args(self):
args = super(ProjectDockerSpawner, self).get_arg...
if (not self._user_set_cmd) and self.dobleArgume...
args = []
return args
#def get_command(self):
# cmd = super(ProjectDockerSpawner, self).get_com...
# return cmd
#
# '''
# if self._user_set_cmd:
# cmd = self.cmd
# else:
# image_info = yield self.docker("inspect_ima...
# cmd = image_info["Config"]["Cmd"]
# return cmd + self.get_args()
# '''
def template_namespace(self):
d = super(ProjectDockerSpawner, self).template_n...
if self.group_id >= 0:
d['groupname'] = self.get_groupname()
return d
def get_groupname(self):
gname = ''
if self.group_id >= 0:
gname = grp.getgrgid(self.group_id).gr_name
return gname
def get_env(self):
env = super(ProjectDockerSpawner, self).get_env()
if self.group_id >= 0:
#env.update(NB_GID=self.group_id)
import grp
gname = self.get_groupname()
env.update(NB_GROUP=gname)
return env
def start(self):
name = self.user.name
user_data = pwd.getpwnam(name)
user_gid = user_data.pw_gid
gid_list = os.getgrouplist(name, user_gid)
work_dir = self.notebook_dir
self.volumes['jupyterhub-user-{username}'] = wor...
for gid in gid_list:
gname = grp.getgrgid(gid).gr_name
if gname.startswith("project-"):
dirname = gname.replace("project-", "")
self.volumes[gname] = work_dir + '/proje...
return super(ProjectDockerSpawner, self).start()
## Interval (in seconds) at which to check connectivity ...
# endpoints.
#c.JupyterHub.service_check_interval = 60
## Dict of token:servicename to be loaded into the datab...
#
# Allows ahead-of-time generation of API tokens for use...
# services.
#c.JupyterHub.service_tokens = {}
## List of service specification dictionaries.
#
# A service
#
# For instance::
#
# services = [
# {
# 'name': 'cull_idle',
# 'command': ['/path/to/cull_idle_servers.p...
# },
# {
# 'name': 'formgrader',
# 'url': 'http://127.0.0.1:1234',
# 'api_token': 'super-secret',
# 'environment':
# }
# ]
#c.JupyterHub.services = []
## Shuts down all user servers on logout
#c.JupyterHub.shutdown_on_logout = False
## The class to use for spawning single-user servers.
#
# Should be a subclass of :class:`jupyterhub.sp...
#
# .. versionchanged:: 1.0
# spawners may be registered via entry poin...
# e.g. `c.JupyterHub.spawner_class = 'local...
#
# Currently installed:
# - default: jupyterhub.spawner.LocalProcessSpawner
# - localprocess: jupyterhub.spawner.LocalProcessSpaw...
# - simple: jupyterhub.spawner.SimpleLocalProcessSpaw...
# - docker: dockerspawner.DockerSpawner
# - docker-swarm: dockerspawner.SwarmSpawner
# - docker-system-user: dockerspawner.SystemUserSpawner
#c.JupyterHub.spawner_class = 'jupyterhub.spawner.LocalP...
#c.JupyterHub.spawner_class = 'coursewareuserspawner.Cou...
#c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawn...
#c.JupyterHub.spawner_class = 'dockerspawner.SwarmSpawner'
#c.JupyterHub.spawner_class = 'dockerspawner.SystemUserS...
#c.JupyterHub.spawner_class = 'dockerspawner.NSLDockerSp...
c.JupyterHub.spawner_class = ProjectDockerSpawner
#c.DockerSpawner.image = 'niicloudoperation/jupyterhub-s...
#c.DockerSpawner.image = 'niicloudoperation/notebook'
#c.DockerSpawner.image = 'jupyter/datascience-notebook'
#c.DockerSpawner.image = 'jupyterhub-test-note'
#c.DockerSpawner.image = 'jupyterhub/singleuser'
#c.DockerSpawner.image = 'jupyter_single-project'
c.DockerSpawner.image = 'jupyter_single-devel'
#c.DockerSpawner.image_whitelist = {
# "deepdetect-gpu (Tensorflow+PyTorch)": "jolibrain/j...
# "tensorflow-2-gpu (Tensorflow 2.0)": "d4n1el/tensor...
# "datascience-gpu (Python+Julia+R)": "d4n1el/datasci...
# "tensorflow-cpu (Tensorflow)": "jupyter/tensorflow-...
# "datascience-cpu (Python+Julia+R)": "jupyter/datasc...
# "TEST" : "jupyterhub-test"
#}
c.DockerSpawner.remove_containers = True
c.DockerSpawner.remove = True
c.DockerSpawner.extra_create_kwargs = {'user': 'root'}
#c.DockerSpawner.extra_host_config = {'runtime': 'nvidia'}
c.Spawner.environment = {'GRANT_SUDO': 'yes'}
#notebook_dir = '/home/jovyan/work'
#notebook_dir = '/home/{username}/work'
notebook_dir = '/home/{groupname}/{username}/work'
c.DockerSpawner.notebook_dir = notebook_dir
#c.DockerSpawner.volumes = { 'jupyterhub-user-{username}...
#from jupyter_client.localinterfaces import public_ips
#c.JupyterHub.hub_ip = public_ips()[0]
#c.Spawner.args = ['EEEE=ABC']
#c.SystemUserSpawner.args = ['--user-name={username}', '...
#c.Spawner.args = ['--userxxxnameame', notebook_dir]
#c.DockerSpawner.args = ['--aaaa', '{username}']
#c.DockerSpawner.args = ['--username={username}']
##
#c.DockerSpawner.image = 'jupyterhub/singleuser'
#c.DockerSpawner.remove = True
#c.DockerSpawner.extra_create_kwargs = {'user': 'root'}
#c.Spawner.environment = {'GRANT_SUDO': 'yes'}
#notebook_dir = '/home/jovyan/work'
#c.DockerSpawner.notebook_dir = notebook_dir
#c.DockerSpawner.volumes = { 'jupyterhub-user-{username}...
#from jupyter_client.localinterfaces import public_ips
## Path to SSL certificate file for the public facing in...
#
# When setting this, you should also set ssl_key
#c.JupyterHub.ssl_cert = ''
## Path to SSL key file for the public facing interface ...
#
# When setting this, you should also set ssl_cert
#c.JupyterHub.ssl_key = ''
## Host to send statsd metrics to. An empty string (the ...
# metrics.
#c.JupyterHub.statsd_host = ''
## Port on which to send statsd metrics about the hub
#c.JupyterHub.statsd_port = 8125
## Prefix to use for all metrics sent by jupyterhub to s...
#c.JupyterHub.statsd_prefix = 'jupyterhub'
## Run single-user servers on subdomains of this host.
#
# This should be the full `https://hub.domain.tld[:port...
#
# Provides additional cross-site protections for javasc...
# user servers.
#
# Requires `<username>.hub.domain.tld` to resolve to th...
# `hub.domain.tld`.
#
# In general, this is most easily achieved with wildcar...
#
# When using SSL (i.e. always) this also requires a wil...
#c.JupyterHub.subdomain_host = ''
## Paths to search for jinja templates, before using the...
#c.JupyterHub.template_paths = []
## Extra variables to be passed into jinja templates
#c.JupyterHub.template_vars = {}
## Extra settings overrides to pass to the tornado appli...
#c.JupyterHub.tornado_settings = {}
## Trust user-provided tokens (via JupyterHub.service_to...
# entropy.
#
# If you are not inserting additional tokens via config...
# has no effect.
#
# In JupyterHub 0.8, internally generated tokens do not...
# hashing because the hashing is costly and does not in...
# already-good UUIDs.
#
# User-provided tokens, on the other hand, are not trus...
# by default, and are passed through many rounds of has...
# entropy of the key (i.e. user-provided tokens are tre...
# of random keys). These keys are more costly to check.
#
# If your inserted tokens are generated by a good-quali...
# `openssl rand -hex 32`, then you can set this flag to...
# of checking authentication tokens.
#c.JupyterHub.trust_user_provided_tokens = False
## Names to include in the subject alternative name.
#
# These names will be used for server name verification...
# JupyterHub is being run behind a reverse proxy or ser...
# different hosts.
#
# Use with internal_ssl
#c.JupyterHub.trusted_alt_names = []
## Downstream proxy IP addresses to trust.
#
# This sets the list of IP addresses that are trusted a...
# processing the `X-Forwarded-For` header. For example,...
# used for TLS termination, its IP address should be ad...
# ensure the correct client IP addresses are recorded i...
# proxy server's IP address.
#c.JupyterHub.trusted_downstream_ips = []
## Upgrade the database automatically on start.
#
# Only safe if database is regularly backed up. Only SQ...
# backed up to a local file automatically.
#c.JupyterHub.upgrade_db = False
## Callable to affect behavior of /user-redirect/
#
# Receives 4 parameters: 1. path - URL path that was pr...
# redirect/ 2. request - A Tornado HTTPServerRequest re...
# request. 3. user - The currently authenticated user. ...
# base_url of the current hub, for relative redirects
#
# It should return the new URL to redirect to, or None ...
# behavior.
#c.JupyterHub.user_redirect_hook = None
#-------------------------------------------------------...
# Spawner(LoggingConfigurable) configuration
#-------------------------------------------------------...
## Base class for spawning single-user notebook servers.
#
# Subclass this, and override the following methods:
#
# - load_state - get_state - start - stop - poll
#
# As JupyterHub supports multiple users, an instance of...
# created for each user. If there are 20 JupyterHub use...
# instances of the subclass.
## Extra arguments to be passed to the single-user server.
#
# Some spawners allow shell-style expansion here, allow...
# environment variables here. Most, including the defau...
# documentation for your spawner to verify!
#c.Spawner.args = []
## An optional hook function that you can implement to p...
# spawner after it has been initialized but before it s...
# dictionary may be set by the `.authenticate()` method...
# This hook enables you to pass some or all of that inf...
#
# Example::
#
# def userdata_hook(spawner, auth_state):
# spawner.userdata = auth_state["userdata"]
#
# c.Spawner.auth_state_hook = userdata_hook
#c.Spawner.auth_state_hook = None
## The command used for starting the single-user server.
#
# Provide either a string or a list containing the path...
# command. Extra arguments, other than this path, shoul...
#
# This is usually set if you want to start the single-u...
# python environment (with virtualenv/conda) than Jupyt...
#
# Some spawners allow shell-style expansion here, allow...
# environment variables. Most, including the default, d...
# documentation for your spawner to verify!
#c.Spawner.cmd = ['jupyterhub-singleuser']
## Maximum number of consecutive failures to allow befor...
# JupyterHub.
#
# This helps JupyterHub recover from a certain class of...
# launch in contexts where the Hub is automatically res...
# docker, kubernetes).
#
# A limit of 0 means no limit and consecutive failures ...
#c.Spawner.consecutive_failure_limit = 0
## Minimum number of cpu-cores a single-user notebook se...
# have available.
#
# If this value is set to 0.5, allows use of 50% of one...
# set to 2, allows use of up to 2 CPUs.
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.cpu_guarantee = None
## Maximum number of cpu-cores a single-user notebook se...
#
# If this value is set to 0.5, allows use of 50% of one...
# set to 2, allows use of up to 2 CPUs.
#
# The single-user notebook server will never be schedul...
# more cpu-cores than this. There is no guarantee that ...
# cpu-cores.
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.cpu_limit = None
## Enable debug-logging of the single-user server
#c.Spawner.debug = False
## The URL the single-user server should start in.
#
# `{username}` will be expanded to the user's username
#
# Example uses:
#
# - You can set `notebook_dir` to `/` and `default_url`...
# navigate the whole filesystem from their notebook s...
# - Start with `/notebooks` instead of `/tree` if `defa...
# - You can set this to `/lab` to have JupyterLab start...
c.Spawner.default_url = '/lab'
## Disable per-user configuration of single-user servers.
#
# When starting the user's single-user server, any conf...
# user's $HOME directory will be ignored.
#
# Note: a user could circumvent this if the user modifi...
# environment, such as when they have their own conda e...
# / containers.
#c.Spawner.disable_user_config = False
## Whitelist of environment variables for the single-use...
# the JupyterHub process.
#
# This whitelist is used to ensure that sensitive infor...
# process's environment (such as `CONFIGPROXY_AUTH_TOKE...
# single-user server's process.
#c.Spawner.env_keep = ['PATH', 'PYTHONPATH', 'CONDA_ROOT...
## Extra environment variables to set for the single-use...
#
# Environment variables that end up in the single-user ...
# - This `environment` configurable
# - The JupyterHub process' environment variables tha...
# - Variables to establish contact between the single...
#
# The `environment` configurable should be set by Jupyt...
# add installation specific environment variables. It i...
# the name of the environment variable, and the value c...
# callable. If it is a callable, it will be called with...
# spawner instance), and should return a string fairly ...
# operations please!).
#
# Note that the spawner class' interface is not guarant...
# across upgrades, so if you are using the callable tak...
# continues to work after upgrades!
#c.Spawner.environment = {}
## Timeout (in seconds) before giving up on a spawned HT...
#
# Once a server has successfully been spawned, this is ...
# wait before assuming that the server is unable to acc...
#c.Spawner.http_timeout = 30
## The IP address (or hostname) the single-user server s...
#
# The JupyterHub proxy implementation should be able to...
# interface.
#c.Spawner.ip = ''
## Minimum number of bytes a single-user notebook server...
# available.
#
# Allows the following suffixes:
# - K -> Kilobytes
# - M -> Megabytes
# - G -> Gigabytes
# - T -> Terabytes
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.mem_guarantee = None
## Maximum number of bytes a single-user notebook server...
#
# Allows the following suffixes:
# - K -> Kilobytes
# - M -> Megabytes
# - G -> Gigabytes
# - T -> Terabytes
#
# If the single user server tries to allocate more memo...
# fail. There is no guarantee that the single-user note...
# to allocate this much memory - only that it can not a...
#
# **This is a configuration setting. Your spawner must ...
# limit to work.** The default spawner, `LocalProcessSp...
# implement this support. A custom spawner **must** add...
# for it to be enforced.
#c.Spawner.mem_limit = None
## Path to the notebook directory for the single-user se...
#
# The user sees a file listing of this directory when t...
# started. The current interface does not easily allow ...
# subdirectories in this directory's tree.
#
# `~` will be expanded to the home directory of the use...
# replaced with the name of the user.
#
# Note that this does *not* prevent users from accessin...
# path! They can do so with many other means.
#c.Spawner.notebook_dir = '/home/jupyter'
#c.Spawner.notebook_dir = '~/notebook'
## An HTML form for options a user can specify on launch...
#
# The surrounding `<form>` element and the submit butto...
#
# For example:
#
# .. code:: html
#
# Set your key:
# <input name="key" val="default_key"></input>
# <br>
# Choose a letter:
# <select name="letter" multiple="true">
# <option value="A">The letter A</option>
# <option value="B">The letter B</option>
# </select>
#
# The data from this form submission will be passed on ...
# `self.user_options`
#
# Instead of a form snippet string, this could also be ...
# one parameter the current spawner instance and return...
# will be called asynchronously if it returns a future,...
# that the interface of the spawner class is not deemed...
# so using this functionality might cause your JupyterH...
#c.Spawner.options_form = traitlets.Undefined
## Interval (in seconds) on which to poll the spawner fo...
# status.
#
# At every poll interval, each spawner's `.poll` method...
# if the single-user server is still running. If it isn...
# JupyterHub modifies its own state accordingly and rem...
# from the configurable proxy.
#c.Spawner.poll_interval = 30
## The port for single-user servers to listen on.
#
# Defaults to `0`, which uses a randomly allocated port...
#
# If set to a non-zero value, all Spawners will use the...
# makes sense if each server is on a different address,...
#
# New in version 0.7.
#c.Spawner.port = 0
## An optional hook function that you can implement to d...
# stops.
#
# This can be set independent of any concrete spawner i...
#c.Spawner.post_stop_hook = None
## An optional hook function that you can implement to d...
# before the spawner starts. For example, create a dire...
# load initial content.
#
# This can be set independent of any concrete spawner i...
#
# This maybe a coroutine.
#
# Example::
#
# from subprocess import check_call
# def my_hook(spawner):
# username = spawner.user.name
# check_call(['./examples/bootstrap-script/boot...
#
# c.Spawner.pre_spawn_hook = my_hook
#c.Spawner.pre_spawn_hook = None
## List of SSL alt names
#
# May be set in config if all spawners should have the ...
# runtime by Spawner that know their names.
#c.Spawner.ssl_alt_names = []
## Whether to include DNS:localhost, IP:127.0.0.1 in alt...
#c.Spawner.ssl_alt_names_include_local = True
## Timeout (in seconds) before giving up on starting of ...
#
# This is the timeout for start to return, not the time...
# respond. Callers of spawner.start will assume that st...
# takes longer than this. start should return when the ...
# and its location is known.
#c.Spawner.start_timeout = 60
#-------------------------------------------------------...
# Authenticator(LoggingConfigurable) configuration
#-------------------------------------------------------...
## Base class for implementing an authentication provide...
## Set of users that will have admin rights on this Jupy...
#
# Admin users have extra privileges:
# - Use the admin panel to see list of users logged in
# - Add / remove users in some authenticators
# - Restart / halt the hub
# - Start / stop users' single-user servers
# - Can access each individual users' single-user serv...
#
# Admin access should be treated the same way root acce...
#
# Defaults to an empty set, in which case no user has a...
#c.Authenticator.admin_users = set()
c.Authenticator.admin_users = {'admin'}
## The max age (in seconds) of authentication info befor...
# user auth info.
#
# Refreshing auth info allows, e.g. requesting/re-valid...
#
# See :meth:`.refresh_user` for what happens when user ...
# (nothing by default).
#c.Authenticator.auth_refresh_age = 300
## Automatically begin the login process
#
# rather than starting with a "Login with..." link at `...
#
# To work, `.login_url()` must give a URL other than th...
# such as an oauth handler or another automatic login h...
# `.get_handlers()`.
#
# .. versionadded:: 0.8
#c.Authenticator.auto_login = False
## Blacklist of usernames that are not allowed to log in.
#
# Use this with supported authenticators to restrict wh...
# This is an additional blacklist that further restrict...
# restrictions the authenticator has in place.
#
# If empty, does not perform any additional restriction.
#
# .. versionadded: 0.9
#c.Authenticator.blacklist = set()
## Enable persisting auth_state (if available).
#
# auth_state will be encrypted and stored in the Hub's ...
# include things like authentication tokens, etc. to be...
# environment variables.
#
# Encrypting auth_state requires the cryptography packa...
#
# Additionally, the JUPYTERHUB_CRYPT_KEY environment va...
# (or more, separated by ;) 32B encryption keys. These ...
# hex-encoded.
#
# If encryption is unavailable, auth_state cannot be pe...
#
# New in JupyterHub 0.8
#c.Authenticator.enable_auth_state = False
## An optional hook function that you can implement to d...
# during authentication. For example, loading user acco...
# external system.
#
# This function is called after the user has passed all...
# and is ready to successfully authenticate. This funct...
# authentication dict reguardless of changes to it.
#
# This maybe a coroutine.
#
# .. versionadded: 1.0
#
# Example::
#
# import os, pwd
# def my_hook(authenticator, handler, authenticatio...
# user_data = pwd.getpwnam(authentication['name...
# spawn_data = {
# 'pw_data': user_data
# 'gid_list': os.getgrouplist(authenticatio...
# }
#
# if authentication['auth_state'] is None:
# authentication['auth_state'] = {}
# authentication['auth_state']['spawn_data'] = ...
#
# return authentication
#
# c.Authenticator.post_auth_hook = my_hook
#c.Authenticator.post_auth_hook = None
## Force refresh of auth prior to spawn.
#
# This forces :meth:`.refresh_user` to be called prior ...
# ensure that auth state is up-to-date.
#
# This can be important when e.g. auth tokens that may ...
# to the spawner via environment variables from auth_st...
#
# If refresh_user cannot refresh the user auth data, la...
# user logs in again.
#c.Authenticator.refresh_pre_spawn = False
## Dictionary mapping authenticator usernames to Jupyter...
#
# Primarily used to normalize OAuth user names to local...
#c.Authenticator.username_map = {}
## Regular expression pattern that all valid usernames m...
#
# If a username does not match the pattern specified he...
# not be attempted.
#
# If not set, allow any username.
#c.Authenticator.username_pattern = ''
## Whitelist of usernames that are allowed to log in.
#
# Use this with supported authenticators to restrict wh...
# This is an additional whitelist that further restrict...
# restrictions the authenticator has in place.
#
# If empty, does not perform any additional restriction.
#c.Authenticator.whitelist = set()
#-------------------------------------------------------...
# CryptKeeper(SingletonConfigurable) configuration
#-------------------------------------------------------...
## Encapsulate encryption configuration
#
# Use via the encryption_config singleton below.
##
#c.CryptKeeper.keys = []
## The number of threads to allocate for encryption
#c.CryptKeeper.n_threads = 16
ページ名:
サイト内 検索
高度な検索
ログイン
ユーザー名:
パスワード:
パスワード紛失
新規登録
サブ メニュー
新着情報
Books
リンク
サイトマップ
e-Learning
TUIS 認証局証明書
ミニカレンダー
2024年 12月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<今日>
オンライン状況
37 人のユーザが現在オンラインです。 (2 人のユーザが xpwiki を参照しています。)
登録ユーザ: 0
ゲスト: 37
もっと...
アクセスカウンタ
今日 :
昨日 :
総計 :
Powered by XOOPS Cube 2.1© 2001-2006
XOOPS Cube Project
Design by
XoopsDesign.com