public_notes/content/20240310135606 raspi4にjupyterhubをインストール.md

107 lines
No EOL
3.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 20240310135606 raspi4にjupyterhubをインストール
#raspi #jupyter #jupyterhub
[[20240121125457 venv|venv]] で作ったローカル環境にインストールした。
## npmとconfigurable-http-proxyのインストール
これもローカル環境をつくった方がよかったかも
```
$ sudo apt install npm
$ sudo npm install configurable-http-proxy
```
## jupyterhubをインストール
venvを有効にして、jupyter, jupyterhubをインストール
```
$ mkdir jupyter
$ cd jupyter
$ python -m venv .venv
$ . .venv/bin/activate
(venv) $ sudo 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.
- [Project Jupyter | JupyterHub](https://jupyter.org/hub)
- [JupyterHub/JupyterLabを構築してみた マルチユーザでGPUマシンを共有するための開発環境トレンドコラムGPUサーバープラットフォームの設計/構築なら「技術力」のNTTPC](https://www.nttpc.co.jp/gpu/article/technical12.html)
### 未整理
#tech #server #raspi
https://github.com/jupyterhub/jupyterhub-the-hard-way/blob/HEAD/docs/installation-guide-hard.md
[Raspberry Pi 4 ModelBでJupyterLabを使うみなみゆうき](https://note.com/y373/n/ne5f96936fc28)
[JupyterHub + JupyterLabで Python マルチユーザプラットフォームを作る on Rapsberry Pi 3B+ ! #Python - Qiita](https://qiita.com/noguhiro2002/items/99758ad66587f24c0ef2)
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](https://github.com/jupyter/nbconvert/issues/1655)
たぶんこっちの方がいい voila
[GitHub - voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applications](https://github.com/voila-dashboards/voila)