mirror of
https://github.com/jupyterhub/the-littlest-jupyterhub.git
synced 2025-12-18 21:54:05 +08:00
- Load config only once at startup. A lot of jupyterhub config (like user lists) take effect only at startup, so live reload is not super useful. It will make the software more complex, so let's not do it. - Add pyyaml as a dependency of tljh. - Remove escapism dependency since it is not actually used
31 lines
1000 B
Python
31 lines
1000 B
Python
"""
|
|
JupyterHub config for the littlest jupyterhub.
|
|
"""
|
|
import os
|
|
from systemdspawner import SystemdSpawner
|
|
from tljh import user, configurer
|
|
|
|
INSTALL_PREFIX = os.environ.get('TLJH_INSTALL_PREFIX')
|
|
USER_ENV_PREFIX = os.path.join(INSTALL_PREFIX, 'user')
|
|
|
|
class CustomSpawner(SystemdSpawner):
|
|
def start(self):
|
|
"""
|
|
Perform system user activities before starting server
|
|
"""
|
|
# FIXME: Move this elsewhere? Into the Authenticator?
|
|
user.ensure_user(self.user.name)
|
|
user.ensure_user_group(self.user.name, 'jupyterhub-users')
|
|
if self.user.admin:
|
|
user.ensure_user_group(self.user.name, 'jupyterhub-admins')
|
|
else:
|
|
user.remove_user_group(self.user.name, 'jupyterhub-admins')
|
|
return super().start()
|
|
|
|
c.JupyterHub.spawner_class = CustomSpawner
|
|
|
|
c.SystemdSpawner.extra_paths = [os.path.join(USER_ENV_PREFIX, 'bin')]
|
|
c.SystemdSpawner.use_sudo = True
|
|
|
|
configurer.apply_yaml_config('/etc/jupyterhub/jupyterhub.yaml', c)
|