With DummyAuthenticator, I want to set custom default terminal path

Without make server account on linux, I should set jupyterhub for multiple user.

So I used DummyAuthenticator and SimpleLocalProcessSpwaner to add ‘dummy’ user.

However the jupyternotebook server per user runned well, when i open the terminal, it shows the default path to ‘/tmp/{user_name}’.

How can i set config that terminal opens on jupyterhub ‘HOME’ dir?

Here is my code

c.Authenticator.delete_invalid_users = True

c = get_config()  #noqa


 

#from jupyterhub.spawner import Spawner, SimpleLocalProcessorSpawner


 

# -----------------

# 기본 설정

# -----------------

#c.JupyterHub.port = 11439

#c.JupyterHub.bind_url = 'http://:11439'


 

from jupyterhub.auth import DummyAuthenticator

from jupyterhub.spawner import SimpleLocalProcessSpawner

import os


 

#c.Authenticator.delete_invalid_users = True


 

class CustomSpawner(SimpleLocalProcessSpawner):


 

    def user_env(self, env):

        env = super().user_env(env)

        user_dir = f"/data/jupyterhub/users/{self.user.name}"

        env['HOME'] = user_dir

        env['JUPYTERHUB_USER'] = self.user.name

        return env


 

    def start(self):

        user_dir = f"/data/jupyterhub/users/{self.user.name}"

        os.makedirs(user_dir, exist_ok=True)


 

        self.notebook_dir = user_dir

        self.cwd = user_dir

        self.env_keep.append('JUPYTERHUB_USER')

        self.default_url = '/lab'


 

        self.args.extend([

            f'--ServerApp.root_dir={user_dir}',

            f'--ServerApp.terminado_settings={{"shell_command": ["bash"], "cwd": "{user_dir}"}}'

        ])

        return super().start()


 

c.JupyterHub.authenticator_class = DummyAuthenticator

c.DummyAuthenticator.password = "passwd"

c.Authenticator.admin_users = {'admin'}

c.Authenticator.allowed_users = {'test1'}

c.JupyterHub.spawner_class = CustomSpawner

SimpleLocalProcessSpawner is only suitable for testing, not for production use since everyone runs under the same userid so there’s no isolation of users.

Have you tried overriding home_dir_template?