You might want to override Spawner.start to do the actions you are looking for when a user’s server starts.
from jupyterhub.spawner import LocalProcessSpawner
class MySpawner(LocalProcessSpawner):
def start(self):
setup_home_directory(self.user.name) # < define this function
return super().start()
c.JupyterHub.spawner_class = MySpawner
-Min