Skip to content

Instantly share code, notes, and snippets.

Created June 24, 2015 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/473ffae1a124902b1314 to your computer and use it in GitHub Desktop.
Save anonymous/473ffae1a124902b1314 to your computer and use it in GitHub Desktop.
# Configuration file for jupyterhub.
from jupyterhub.spawner import LocalProcessSpawner
class MySpawner(LocalProcessSpawner):
def user_env(self, env):
env = super().user_env(env)
# ['GISRC']="/home/epinux/.grass7/rc"
env['GISRC'] = '/home/%s/.grass7/rc' % self.user.name
return env
c = get_config()
c.JupyterHub.spawner_class = MySpawner
c.Spawner.notebook_dir = '~/jupyter'
c.JupyterHub.port = 8888
c.JupyterHub.proxy_api_port = 9985
c.JupyterHub.hub_port = 9995
c.JupyterHub.proxy_auth_token = '04b2020f69c76650b82d468ea752772bdab10417'
c.JupyterHub.admin_users = {'epinux'}
c.JupyterHub.config_file = '/usr/local/share/jupyter/jupyterhub_config.py'
#c.JupyterHub.data_files_path = '/usr/local/share/jupyter'
c.Spawner.env_keep = ['PATH', 'PYTHONPATH', 'LD_LIBRARY_PATH', 'GISBASE', 'GIS_LOCK', 'GISRC', 'GISDBASE','GRASS_RENDER_IMMEDIATE','GRASS_RENDER_FILE_COMPRESSION','GRASS_RENDER_WIDTH','GRASS_RENDER_HEIGHT','GRASS_RENDER_TRANSPARENT','GRASS_RENDER_FILE_READ','GRASS_RENDER_TRUECOLOR','GRASS_RENDER_PNG_AUTO_WRITE', 'LANG', 'LC_ALL']
c.JupyterHub.admin_users = {'epinux'}
c.JupyterHub.hub_ip = '144.76.93.231'
#------------------------------------------------------------------------------
# JupyterHub configuration
#------------------------------------------------------------------------------
# An Application for starting a Multi-User Jupyter Notebook server.
# JupyterHub will inherit config from: Application
# Answer yes to any questions (e.g. confirm overwrite)
# c.JupyterHub.answer_yes = False
# set of usernames of admin users
#
# If unspecified, only the user that launches the server will be admin.
# c.JupyterHub.admin_users = set()
# Extra log handlers to set on JupyterHub logger
# c.JupyterHub.extra_log_handlers = []
# log all database transactions. This has A LOT of output
# c.JupyterHub.debug_db = False
# Path to SSL certificate file for the public facing interface of the proxy
#
# Use with ssl_key
# c.JupyterHub.ssl_cert = ''
# show debug output in configurable-http-proxy
# c.JupyterHub.debug_proxy = False
# Whether to shutdown single-user servers when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub while leaving the single-
# user servers running.
#
# If both this and cleanup_proxy are False, sending SIGINT to the Hub will only
# shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
# c.JupyterHub.cleanup_servers = True
# The port for this process
# c.JupyterHub.hub_port = 8081
# The base URL of the entire application
# c.JupyterHub.base_url = '/'
# The command to start the http proxy.
#
# Only override if configurable-http-proxy is not on your PATH
# c.JupyterHub.proxy_cmd = 'configurable-http-proxy'
# File to write PID Useful for daemonizing jupyterhub.
# c.JupyterHub.pid_file = ''
# Path to SSL key file for the public facing interface of the proxy
#
# Use with ssl_cert
# c.JupyterHub.ssl_key = ''
# Set the log level by value or name.
# c.JupyterHub.log_level = 30
# Set a logging.FileHandler on this file.
# c.JupyterHub.extra_log_file = ''
# The public facing port of the proxy
# c.JupyterHub.port = 8000
# The Proxy Auth token.
#
# Loaded from the CONFIGPROXY_AUTH_TOKEN env variable by default.
# c.JupyterHub.proxy_auth_token = ''
# The port for the proxy API handlers
# c.JupyterHub.proxy_api_port = 0
# The ip for the proxy API handlers
# c.JupyterHub.proxy_api_ip = 'localhost'
# The location of jupyterhub data files (e.g. /usr/local/share/jupyter/hub)
# c.JupyterHub.data_files_path = '/home/epilib/Envs/env1/share/jupyter/hub'
# Whether to shutdown the proxy when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub while leaving the proxy
# running.
#
# Only valid if the proxy was starting by the Hub process.
#
# If both this and cleanup_servers are False, sending SIGINT to the Hub will
# only shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
# c.JupyterHub.cleanup_proxy = True
# The ip for this process
# c.JupyterHub.hub_ip = 'localhost'
# The public facing ip of the proxy
# c.JupyterHub.ip = ''
# url for the database. e.g. `sqlite:///jupyterhub.sqlite`
# c.JupyterHub.db_url = 'sqlite:///jupyterhub.sqlite'
# The prefix for the hub server. Must not be '/'
# c.JupyterHub.hub_prefix = '/hub/'
# Purge and reset the database.
# c.JupyterHub.reset_db = False
# Grant admin users permission to access single-user servers.
#
# Users should be properly informed if this is enabled.
# c.JupyterHub.admin_access = False
# File in which to store the cookie secret.
# c.JupyterHub.cookie_secret_file = 'jupyterhub_cookie_secret'
# The class to use for spawning single-user servers.
#
# Should be a subclass of Spawner.
# c.JupyterHub.spawner_class = <class 'jupyterhub.spawner.LocalProcessSpawner'>
# The config file to load
# c.JupyterHub.config_file = 'jupyterhub_config.py'
# The cookie secret to use to encrypt cookies.
#
# Loaded from the JPY_COOKIE_SECRET env variable by default.
# c.JupyterHub.cookie_secret = b''
# Interval (in seconds) at which to update last-activity timestamps.
# c.JupyterHub.last_activity_interval = 300
# Interval (in seconds) at which to check if the proxy is running.
# c.JupyterHub.proxy_check_interval = 30
# Generate default config file
# c.JupyterHub.generate_config = False
# Include any kwargs to pass to the database connection. See
# sqlalchemy.create_engine for details.
# c.JupyterHub.db_kwargs = {}
#
# c.JupyterHub.tornado_settings = {}
# The Logging format template
# c.JupyterHub.log_format = '[%(name)s]%(highlevel)s %(message)s'
# Class for authenticating users.
#
# This should be a class with the following form:
#
# - constructor takes one kwarg: `config`, the IPython config object.
#
# - is a tornado.gen.coroutine
# - returns username on success, None on failure
# - takes two arguments: (handler, data),
# where `handler` is the calling web.RequestHandler,
# and `data` is the POST form data from the login page.
# c.JupyterHub.authenticator_class = <class 'jupyterhub.auth.PAMAuthenticator'>
# Supply extra arguments that will be passed to Jinja environment.
# c.JupyterHub.jinja_environment_options = {}
# The date format used by logging formatters for %(asctime)s
# c.JupyterHub.log_datefmt = '%Y-%m-%d %H:%M:%S'
#------------------------------------------------------------------------------
# Spawner configuration
#------------------------------------------------------------------------------
# Base class for spawning single-user notebook servers.
#
# Subclass this, and override the following methods:
#
# - load_state - get_state - start - stop - poll
# The IP address (or hostname) the single-user server should listen on
# c.Spawner.ip = 'localhost'
# Timeout (in seconds) before giving up on the spawner.
#
# This is the timeout for start to return, not the timeout for the server to
# respond. Callers of spawner.start will assume that startup has failed if it
# takes longer than this. start should return when the server process is started
# and its location is known.
# c.Spawner.start_timeout = 60
# Extra arguments to be passed to the single-user server
# c.Spawner.args = []
# Enable debug-logging of the single-user server
# c.Spawner.debug = False
# Whitelist of environment variables for the subprocess to inherit
# c.Spawner.env_keep = ['PATH', 'PYTHONPATH', 'CONDA_ROOT', 'CONDA_DEFAULT_ENV', 'VIRTUAL_ENV', 'LANG', 'LC_ALL']
# The command used for starting notebooks.
# c.Spawner.cmd = ['jupyterhub-singleuser']
# The notebook directory for the single-user server
#
# `~` will be expanded to the user's home directory
# c.Spawner.notebook_dir = ''
# Interval (in seconds) on which to poll the spawner.
# c.Spawner.poll_interval = 30
# Timeout (in seconds) before giving up on a spawned HTTP server
#
# Once a server has successfully been spawned, this is the amount of time we
# wait before assuming that the server is unable to accept connections.
# c.Spawner.http_timeout = 10
#------------------------------------------------------------------------------
# LocalProcessSpawner configuration
#------------------------------------------------------------------------------
# A Spawner that just uses Popen to start local processes.
# LocalProcessSpawner will inherit config from: Spawner
# The IP address (or hostname) the single-user server should listen on
# c.LocalProcessSpawner.ip = 'localhost'
# The notebook directory for the single-user server
#
# `~` will be expanded to the user's home directory
# c.LocalProcessSpawner.notebook_dir = ''
# Extra arguments to be passed to the single-user server
# c.LocalProcessSpawner.args = []
# Whitelist of environment variables for the subprocess to inherit
# c.LocalProcessSpawner.env_keep = ['PATH', 'PYTHONPATH', 'CONDA_ROOT', 'CONDA_DEFAULT_ENV', 'VIRTUAL_ENV', 'LANG', 'LC_ALL']
# Seconds to wait for process to halt after SIGINT before proceeding to SIGTERM
# c.LocalProcessSpawner.INTERRUPT_TIMEOUT = 10
# Enable debug-logging of the single-user server
# c.LocalProcessSpawner.debug = False
# Timeout (in seconds) before giving up on a spawned HTTP server
#
# Once a server has successfully been spawned, this is the amount of time we
# wait before assuming that the server is unable to accept connections.
# c.LocalProcessSpawner.http_timeout = 10
# Interval (in seconds) on which to poll the spawner.
# c.LocalProcessSpawner.poll_interval = 30
# The command used for starting notebooks.
# c.LocalProcessSpawner.cmd = ['jupyterhub-singleuser']
# Timeout (in seconds) before giving up on the spawner.
#
# This is the timeout for start to return, not the timeout for the server to
# respond. Callers of spawner.start will assume that startup has failed if it
# takes longer than this. start should return when the server process is started
# and its location is known.
# c.LocalProcessSpawner.start_timeout = 60
# Seconds to wait for process to halt after SIGKILL before giving up
# c.LocalProcessSpawner.KILL_TIMEOUT = 5
# Seconds to wait for process to halt after SIGTERM before proceeding to SIGKILL
# c.LocalProcessSpawner.TERM_TIMEOUT = 5
#------------------------------------------------------------------------------
# Authenticator configuration
#------------------------------------------------------------------------------
# A class for authentication.
#
# The API is one method, `authenticate`, a tornado gen.coroutine.
# Username whitelist.
#
# Use this to restrict which users can login. If empty, allow any user to
# attempt login.
# c.Authenticator.whitelist = set()
#------------------------------------------------------------------------------
# PAMAuthenticator configuration
#------------------------------------------------------------------------------
# Authenticate local *ix users with PAM
# PAMAuthenticator will inherit config from: LocalAuthenticator, Authenticator
# The PAM service to use for authentication.
# c.PAMAuthenticator.service = 'login'
# Username whitelist.
#
# Use this to restrict which users can login. If empty, allow any user to
# attempt login.
# c.PAMAuthenticator.whitelist = set()
# If a user is added that doesn't exist on the system, should I try to create
# the system user?
# c.PAMAuthenticator.create_system_users = False
# The encoding to use for PAM
# c.PAMAuthenticator.encoding = 'utf8'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment