Trong lĩnh vực lập trình, có vô vàn công cụ hữu ích được thiết kế để giúp các tác vụ của bạn hiệu quả và dễ dàng nhất có thể. Jupyter Notebook là một tiện ích như vậy, kết hợp khả năng ghi chú, trực quan hóa dữ liệu với một trình chỉnh sửa mã trực tiếp. Đối với những ai thường xuyên làm việc với các tập lệnh Python, Jupyter Notebook là một công cụ yêu thích để ghi chú trong các buổi học và chia sẻ đoạn mã được viết tỉ mỉ với bạn bè, đồng nghiệp.
Tuy nhiên, với việc các tài liệu lập trình của bạn được lưu trữ trên một máy chủ bên ngoài, những người dùng quan tâm đến quyền riêng tư có thể lo lắng về việc duy trì tính bảo mật cho các dự án của mình. Vậy, đây là hướng dẫn nhanh về cách bạn có thể tự host Jupyter Notebook (và thậm chí cả JupyterLab) trên máy trạm cá nhân của mình, đảm bảo dữ liệu luôn nằm trong tầm kiểm soát của bạn.
Card đồ họa GTX 1660 Ti bên trong máy tính chơi game, minh họa việc sử dụng GPU cho các tác vụ tính toán chuyên sâu trong Jupyter Notebook.
Triển khai container Jupyter Notebook
Thông thường, các ứng dụng tự host có thể được cấu hình theo nhiều cách khác nhau, và Jupyter Notebook cũng không ngoại lệ. Bạn có thể triển khai Jupyter Notebook thông qua Proxmox hoặc Docker/Podman, tùy thuộc vào hệ thống và kinh nghiệm của bạn.
Sử dụng Proxmox VE
Nếu bạn là người dùng Proxmox VE (PVE), bạn có thể tận dụng kho script Proxmox VE-Helper cực kỳ hữu ích để cài đặt và chạy Jupyter Notebook chỉ trong vài phút. Để thực hiện điều này, hãy làm theo các bước sau:
-
Mở tab Shell của node Proxmox bạn muốn sử dụng.
Giao diện bảng điều khiển Proxmox VE hiển thị tab Shell của một node, chuẩn bị cho việc triển khai Jupyter Notebook.
-
Dán lệnh sau vào giao diện terminal trước khi nhấn phím Enter:
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/jupyternotebook.sh)"
Màn hình Shell trong Proxmox VE hiển thị lệnh đang được thực thi để triển khai container Jupyter Notebook từ script.
-
Chọn Yes khi Proxmox yêu cầu quyền cài đặt Jupyter Notebook và chọn Default Settings cho container.
Cửa sổ cấu hình trong Proxmox VE hiển thị tùy chọn "Default Settings" khi cài đặt container LXC cho Jupyter Notebook.
-
Khi script đã hoàn tất công việc, giao diện Shell sẽ hiển thị địa chỉ IP mà bạn có thể sử dụng để truy cập giao diện web của Jupyter Notebook.
Màn hình Shell của Proxmox VE hiển thị địa chỉ IP để truy cập giao diện web của Jupyter Notebook LXC đã triển khai thành công.
-
Vì Jupyter Notebook yêu cầu một token để xác thực, bạn sẽ phải chuyển sang tab Console trên máy chủ Proxmox và thực thi lệnh sau để tìm secret token được tạo bởi script cài đặt trước đó:
jupyter notebook list
Giao diện Console của Proxmox VE hiển thị lệnh 'jupyter notebook list' để tìm secret token cần thiết cho việc đăng nhập Jupyter Notebook.
-
Chuyển sang giao diện web của Jupyter Notebook, dán token vào trường tương ứng và nhập một mật khẩu để đăng nhập vào Dashboard dễ dàng hơn.
Màn hình đăng nhập giao diện web Jupyter Notebook, nơi người dùng dán token và thiết lập mật khẩu truy cập dashboard.
Sử dụng Docker hoặc Podman
Ngoài ra, bạn có thể chọn giải pháp Docker hoặc Podman và triển khai phiên bản Jupyter Notebook bên trong máy tính cá nhân (hoặc thậm chí một máy ảo, tùy theo ý thích của bạn).
-
Khởi chạy ứng dụng terminal có sẵn trong hệ điều hành của bạn.
-
Chạy lệnh
docker pull
để tải image Jupyter Notebook từ kho lưu trữquay.io
.sudo docker pull quay.io/jupyter/scipy-notebook
Cửa sổ terminal hiển thị quá trình thực thi lệnh 'docker pull quay.io/jupyter/scipy-notebook' để tải hình ảnh Jupyter Notebook.
-
Triển khai container Jupyter Notebook bằng lệnh
docker run
:sudo docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/scipy-notebook
Terminal hiển thị lệnh 'docker run' để triển khai container Jupyter Notebook với các tùy chọn cổng và thư mục làm việc.
-
Bạn có thể truy cập giao diện người dùng Jupyter Notebook bằng liên kết được tạo trong terminal Linux.
Màn hình terminal hiển thị đường link truy cập giao diện web của Jupyter Notebook sau khi container đã được triển khai qua Docker.
Cá nhân tôi khuyến nghị sử dụng phương pháp Docker, vì nó cho phép bạn tận dụng các bảng điều khiển, trình chỉnh sửa và tính năng cộng tác bổ sung có trong JupyterLab. Một số hệ điều hành máy chủ gia đình, như YunoHost, cũng bao gồm các container JupyterLab/Jupyter Notebook, rất lý tưởng nếu bạn muốn một phương pháp dễ dàng để host công cụ lập trình tiện lợi này trên hệ thống của mình.
Lập trình chuyên nghiệp hơn với Jupyter Notebook tự host
Bản thân container Jupyter Notebook/JupyterLab đã có đủ tính năng để đáp ứng nhu cầu ghi chú và lập trình của bạn, nhưng tiện ích của nó còn tăng lên một tầm cao mới khi bạn tích hợp nó với các công cụ tự host khác. Ví dụ, bạn có thể thiết lập Tailscale để truy cập máy trạm lập trình của mình từ các mạng bên ngoài, đây là một trong những cách dễ nhất để chia sẻ notebook của bạn với các lập trình viên khác. Nếu bạn lo lắng về việc mất quyền truy cập vào các dự án Jupyter Notebook do một sự cố home lab, tôi khuyên bạn nên sử dụng Kopia để đồng bộ hóa notebook và tài liệu lập trình của mình với một thiết bị sao lưu chuyên dụng.
Với việc tự host Jupyter Notebook, bạn không chỉ kiểm soát hoàn toàn môi trường làm việc của mình mà còn bảo vệ được quyền riêng tư dữ liệu, đồng thời tối ưu hóa quy trình lập trình. Hãy bắt đầu trải nghiệm sự tự do và an toàn khi tự host công cụ lập trình mạnh mẽ này ngay hôm nay!