- Preliminary support for remote spawning.
- Support for named servers
- New string template variables:
- {NAME} -> server-name
- {NAME_HASH} -> hash of the server-name.
- {USERNAME_HASH} -> hash of username
- Finer control over resource allocations
- Fix
slice
support by making it a configurable option
- Allow setting which Systemd Slice users' services should belong to. This lets admins set policy for all JupyterHub users in one go. [Thanks to @mariusvniekerk]
- Handle failed units that need reset. [thanks to @RohitK89]
- Fix bug in cleaning up services from a previously running JupyterHub. [thanks to @minrk]
- Username templates let you map jupyterhub usernames to different system usernames. Extremely useful for prefixing usernames to prevent collisions.
- Users' home directories now properly read from pwd database, rather than assumed to be under
/home
. Thanks to @cpainterwakefield for reporting & suggested PR!
use_sudo
option is no longer supported. It offered questionable security, and complicated the code unnecessarily. If 'securely run as normal user with sudo' is a required feature, we can re-implement it securely later.- If a path in
readonly_paths
does not exist, spawning user will now fail.
- Dynamic users support, creating users as required with their own persistent homes with systemd's dynamic users feature. Useful for using with tmpnb.
- Add additional properties to the user's systemd unit with
unit_extra_properties
. Thanks to @kfix for most of the work!
- If a user's notebook server service is already running, kill it before attempting to start a new one. GitHub Issue
- Python 3.5 is the minimum supported Python version.
- JupyterHub 0.9 is the minimum supported JupyterHub version.
- Tornado 5.0 is the minimum supported Tornado version.