I currently work on creating an installer using Ansible that first sets up “The Littlest JupyterHub” and then also adds a preconfigured authenticator. This way, after a single install the JupyterHub should be running. In the next step, installing additional libraries and adding more files should be smooth as well for the JupyterHub admins. There is a one course one JupyterHub policy.
The target user group are people with little knowledge in programming and even less knowledge in computer science - users who also don’t have any intentions to learn more about a JupyterHub and its ecosystem. Everything should work with as little user interaction as possible. The libraries should just be there. The files should just appear when needed. The target user group most likely has never experienced a read-only directory and since we have other topics to cover (data analysis, learning algorithms, image analysis, queueing theory etc.), we don’t want to confront the learners with additional work of setting up the environment. Actually, the JupyterHub is offered with the intention to not force the learners to setup any kind of environment. We saw that they used to stumble over setting up Anaconda on their own laptops and computers so the JupyterHub should avoid just that. The administration of such a JupyterHub should create as little additional work as possible. This comes at the cost of not always using the newest version (security updates excepted!) and not always having the greatest experience possible. Also, it is accepted that some resources are wasted (having copies of files instead of a shared drive etc.).