[55] JupyterHub: systemd + pyenv

JupyterHub i JupyterLab są aplikacjami napisanymi w Pythonie.

Podstawowy plik konfiguracyjny /etc/systemd/system/jupyterhub.service:

[Unit]
Description=Jupyterhub

[Service]
User=root
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/USER/.pyenv/versions/.../bin/"
ExecStart=/home/USER/.pyenv/versions/.../bin/jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
WorkingDirectory=/etc/jupyterhub

[Install]
WantedBy=multi-user.target

Dzięki temu w katalogu jupyterhub tworzone są pliki:

jupyterhub_cookie_secret
jupyterhub-proxy.pid
jupyterhub.sqlite

oraz pliki konfiguracyjne: JupyterLab, JupyterHub, JupyterNotebook.

JupyterHub musi być uruchomiony przez użytkownika ROOT by umożliwić uruchamianie instancji jupyterlab z prawami poszczególnych użytkowników (przez PAM).

JupyterHub i JupyterLab jest zainstalowany w virtualenv/pyenv dla odseparowania od interpretera systemowego oraz innych globalnie instalowanych pakietów Pythona.

Środowiska wirtualne tworzone są przez użytkownika USER. Do uruchomienia przez innych użytkowników służy odpowiednie zarządzanie uprawnieniami do katalogów z virtualenv/pyenv.