20240310135606 raspberry piにjupyterhubをインストール

raspijupyterjupyterhub venv で作ったローカル環境にインストールした。

npmとconfigurable-http-proxyのインストール

これもローカル環境をつくった方がよかったかも

$ sudo apt install npm
$ sudo npm install configurable-http-proxy

jupyterhubをインストール

venvを有効にして、jupyter, jupyterhubをインストール

$ sudo apt install gcc python3-dev # 依存関係。自分の場合はこれが足りていなくて、pip installでコケた
$ mkdir jupyter
$ cd jupyter
$ python -m venv venv
$ . venv/bin/activate
(venv) $ pip install jupyter jupyterhub

jupyterhubの設定ファイルを作成

(venv) $ jupyterhub --generate-config

いくつかの項目を編集した

c.JupyterHub.bind_url = 'http://:8000/jupyter'
c.Spawner.cmd = ['/home/kazbo/jupyter/venv/bin/jupyterhub-singleuser']
c.Spawner.default_url = '/lab'
c.Authenticator.admin_users = {'kazbo'}
c.Authenticator.allowed_users = {'kazbo'}

起動

(venv) $ jupyterhub

ログイン画面が表示されればOK。

nginxへの追加

こんな感じにしてある。

        location /jupyter/ {
            # NOTE important to also set base url of jupyterhub to /jupyter in its config
                proxy_pass http://127.0.0.1:8000;

                proxy_redirect   off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;

                # websocket headers
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;

        }

サービス化

venv配下のpythonとかjupyterhubとかを単純に呼べばvenvが実行されるっぽい。

[Unit]
Description=jupyterhub
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/home/kazbo/jupyter


ExecStart=/home/kazbo/jupyter/venv/bin/jupyterhub -f /home/kazbo/jupyter/jupyterhub_config.py
Restart=no


[Install]
WantedBy=multi-user.target

Refs.

未整理

tech serverraspi https://github.com/jupyterhub/jupyterhub-the-hard-way/blob/HEAD/docs/installation-guide-hard.md

Raspberry Pi 4 ModelBでJupyterLabを使う|みなみゆうき JupyterHub + JupyterLabで Python マルチユーザプラットフォームを作る on Rapsberry Pi 3B+ !Python - Qiita

https://blog.gitea.com/render-jupyter-notebooks/

configurable-http-proxy giteaで表示したい sudo apt install jupyter-nbconvert ipython3 python3-ipykernel sudo ipython3 kernel install —name “python3” これを踏む exporting matplotlib plots to html when using %matplotlib widget or notebook · Issue #1655 · jupyter/nbconvert · GitHub

たぶんこっちの方がいい voila GitHub - voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applications