- It's a no-op if we aren't upgrading hub versions.
- We know we're only using sqlite, since we are an
opinionated distro!
- This matches what we do in z2jh
- TLJH should support raspberry pi, which runs ARM. conda does
not support ARM.
- Get nodejs from nodesource instead of conda or default repositories.
Default repositories get out of date pretty quickly.
- Install CHP from npm
- Requires= makes success of CHP a hard dependency for JupyterHub
- After= waits for CHP to start before jupyterhub starts
- Start CHP after networking is ready (properly)
Dynamic Users are neat and probably very useful for a tmpnb
style situation. However, for regular use they have the following
problems:
1. Can't set ProtectHome=no, so you can never apt install or
similar from inside admin accounts.
2. Dynamic uid / gid makes it hard to write sudo rules. We want
admin users to have sudo.
3. Persistent uids / gids are very useful for ad-hoc ACLs between
users. gid sharing isn't the most flexible sharing mechanism,
but it is well known & quite useful.
4. /etc/skel is pretty useful!