在個人服務器上安裝一個 Jupyer Notebook
可能可以更折騰方便的學習和使用 Python
和 R
。
此次安裝環境為 Debian 10 (buster), 64-bit PC。
Contents
Step 1 下載 conda
安裝包並安裝
conda
是一種通用包管理系統,旨在構建和管理任何語言和任何類型的軟件。 Anaconda
則是一個打包的集合,裡面預裝好了 conda
、某個版本的 python
、眾多 packages
、科學計算工具等等。 Miniconda
,顧名思義,它只包含最基本的內容 ——python
與 conda
,以及相關的必須依賴項。對於空間要求嚴格的用戶,Miniconda
是一種選擇。
apt update && apt upgrade -y
# 視具體情況確定下載鏈接
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
初始化當前的 bash
,使 conda
的系統變量生效:
source .bashrc
Step 2 安裝 Jupyter Notebook
如果上一步安裝的是 Anaconda
,則 Jupyter Notebook
已經預裝至系統中了。如果上一步安裝的是 Miniconda
,則需要通過 pip
安裝 Jupyter Notebook
:
pip3 install jupyterlab
Step 3 Jupyter Notebook
的配置和運行
生成 Jupyter Notebook
配置文件,配置文件默認路徑為 /root/.jupyter/jupyter_notebook_config.py
:
jupyter notebook --allow-root --generate-config
為 Jupyter Notebook
生成密碼,密碼文件默認路徑為 /root/.jupyter/jupyter_notebook_config.json
,複製密碼文件中的哈希格式密碼備用:
jupyter notebook password
編輯配置文件,修改如下項:
c.NotebookApp.allow_password_change = True ## 允許後期修改密碼
c.NotebookApp.allow_remote_access = True ## 允許遠程訪問
c.NotebookApp.allow_root = True ## 允許以 root 權限運行
c.NotebookApp.ip = '0.0.0.0' ## 訪問 ip
c.NotebookApp.notebook_dir = '/root' ## Jupyter Notebook 根目錄
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'xxxx' ## 哈希值格式密碼
c.NotebookApp.port = 8888 ## Jupyter Notebook 端口
此時即可運行 Jupyter Notebook
:
jupyter notebook
Step 4 設置系統服務(隨系統啓動)
完成 Step 3 之後 Jupyter Notebook
已經可以正常運行,通過瀏覽器訪問 http://yout_server_ip:port
即可訪問。但此時如果關閉 SSH 連接 Jupyter Notebook
進程也會被殺掉。可以通過將 Jupyter Notebook
注冊為系統服務而達到後臺運行和隨系統啓動的目的。
在 /etc/systemd/system/
目錄下創建 jupyter.service
文件:
[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/root/miniconda3/bin/jupyter-notebook --config=/root/.jupyter/jupyter_notebook_config.py
User=root
Group=root
WorkingDirectory=/root/jupyter_notebook
Restart=always
RestartSec=10
#KillMode=mixed
[Install]
WantedBy=multi-user.target
即可設置 Jupyter Notebook
隨系統運行:
systemctl enable jupyter
systemctl restart jupyter
額外配置:域名訪問
記憶 IP 終究不太容易也不方便,可以考慮使用反向代理來通過域名訪問遠端的 Jupyuter Notebook
。
可以使用 Caddy 2
作爲反代服務器:
## 安裝 Caddy 2
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key' | apt-key add -
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/setup/config.deb.txt?distro=debian&version=any-version' | tee -a /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
編輯路徑 /etc/caddy/
下的 Caddy 2
配置文件 Caddyfile
:
https://jupyter.xxx.xxx
reverse_proxy localhost:8888
tls /path/to/your/cert.crt /path/to/your/cert.key
在 Caddyfile
路徑内啓動 Caddy 2
:
caddy start
完工。🎉