https://jupyterhub.readthedocs.io/en/1.2.0/installation-guide.html
My Configuration
sudo python3 -m venv /volume2/web/development/jupyterhub/
sudo /volume2/web/development/jupyterhub/bin/python3 -m pip install --upgrade pip
sudo /volume2/web/development/jupyterhub/bin/python3 -m pip install wheel
sudo /volume2/web/development/jupyterhub/bin/python3 -m pip install jupyterhub jupyterlab
sudo /volume2/web/development/jupyterhub/bin/python3 -m pip install ipywidgets
# not needed sudo /volume2/web/development/jupyterhub/bin/python3 -m pip install pam
npm install -g configurable-http-proxy
sudo mkdir -p /volume2/web/development/jupyterhub/etc/jupyterhub/
cd /volume2/web/development/jupyterhubjupyterhub/etc/jupyterhub/
sudo /volume2/web/development/jupyterhub/bin/jupyterhub --generate-config
Set the following configuration option in your jupyterhub_config.py file:
c.Spawner.default_url = '/lab'
sudo mkdir -p /volume2/web/development/jupyterhub/etc/systemd
Make the service file named:
/volume2/web/development/jupyterhub/etc/systemd/jupyterhub.service
sudo ln -s /volume2/web/development/jupyterhub/etc/systemd/jupyterhub.service /etc/systemd/system/jupyterhub.service
sudo systemctl daemon-reload
sudo systemctl enable /volume2/web/development/jupyterhub/etc/systemd/jupyterhub.service
sudo systemctl start jupyterhub.service
sudo systemctl status jupyterhub.service
Contents of jupyterhub.service
[Unit]
Description=JupyterHub
After=syslog.target network.target
[Service]
User=root
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/volume2/web/development/jupyterhub/bin"
ExecStart=/volume2/web/development/jupyterhub/bin/jupyterhub -f /volume2/web/development/jupyterhub/etc/jupyterhub/jupyterhub_config.py
[Install]
WantedBy=multi-user.target