Trong thế giới lập trình năng động, các công cụ hữu ích luôn là yếu tố then chốt giúp tối ưu hóa công việc và nâng cao hiệu suất. Jupyter Notebook nổi bật như một tiện ích vượt trội, tích hợp liền mạch giữa ứng dụng ghi chú, công cụ trực quan hóa dữ liệu và trình chỉnh sửa mã trực tiếp. Với vai trò là một người thường xuyên làm việc với các tập lệnh Python, Jupyter Notebook đã trở thành công cụ yêu thích của tôi để ghi lại những ý tưởng quan trọng trong các buổi học và chia sẻ những đoạn mã được đầu tư công phu với bạn bè, đồng nghiệp.
Tuy nhiên, việ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 đôi khi có thể khiến những người dùng quan tâm đến quyền riêng tư lo lắng về tính bảo mật của các dự án. Nếu bạn đang tìm kiếm giải pháp để kiểm soát hoàn toàn dữ liệu của mình, thì tự host Jupyter Notebook (và cả JupyterLab) trên máy trạm cá nhân chính là câu trả lời. Bài viết này sẽ cung cấp hướng dẫn chi tiết về cách bạn có thể thực hiện điều đó một cách nhanh chóng và hiệu quả.
Triển Khai Container Jupyter Notebook
Việc tự host các ứng dụng thường có nhiều cách cấu hình khác nhau, và Jupyter Notebook cũng không phải ngoại lệ. Dưới đây là hai phương pháp phổ biến để bạn có thể triển khai Jupyter Notebook trên hệ thống của mình, phù hợp với các môi trường khác nhau.
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 hỗ trợ Proxmox VE-Helper để đưa Jupyter Notebook vào hoạt động chỉ trong vài phút. Quy trình thực hiện cụ thể như sau:
-
Mở tab Shell của node Proxmox mà bạn muốn sử dụng.
Giao diện Shell của một node Proxmox VE để bắt đầu cài đặt Jupyter Notebook
-
Dán dòng lệnh sau vào giao diện terminal và nhấn Enter:
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/jupyternotebook.sh)"
Thực thi lệnh script để triển khai container Jupyter Notebook trên Proxmox
-
Chọn Yes khi Proxmox yêu cầu quyền cài đặt Jupyter Notebook và sau đó chọn Default Settings cho container.
Lựa chọn thiết lập mặc định cho container Jupyter Notebook LXC trong Proxmox
-
Khi script hoàn tất quá trình cài đặt, giao diện Shell UI sẽ hiển thị địa chỉ IP mà bạn có thể sử dụng để truy cập giao diện web UI của Jupyter Notebook.
Xác định địa chỉ IP để truy cập giao diện web của Jupyter Notebook LXC trên Proxmox
-
Vì Jupyter Notebook yêu cầu một mã token để xác thực, bạn sẽ cần 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:
jupyter notebook list
Nhập lệnh jupyter notebook list trong Console để lấy secret token truy cập Jupyter Notebook
-
Chuyển sang giao diện web UI 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 trong các lần tiếp theo.
Dán token vào giao diện web Jupyter Notebook và thiết lập mật khẩu bảo mật
Sử Dụng Docker hoặc Podman
Ngoài ra, bạn có thể chọn phương án sử dụng Docker hoặc Podman để triển khai phiên bản Jupyter Notebook bên trong máy tính cá nhân của mình (hoặc thậm chí là một máy ảo, nếu đó là lựa chọn ưu tiên của bạn). Đây là một phương pháp linh hoạt và mạnh mẽ, đặc biệt phù hợp cho những ai đã quen thuộc với công nghệ container.
-
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
Sử dụng lệnh docker pull để tải image scipy-notebook của Jupyter Notebook từ quay.io
-
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
Thực thi lệnh docker run để khởi chạy container Jupyter Notebook và ánh xạ cổng
-
Bạn có thể truy cập giao diện người dùng Jupyter Notebook thông qua liên kết được tạo trong terminal Linux.
Truy cập giao diện web Jupyter Notebook thông qua liên kết được tạo ra trong terminal
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 tối đa 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. Hơn nữa, một số hệ điều hành máy chủ gia đình (home server OS) như YunoHost cũng đã bao gồm các container JupyterLab/Jupyter Notebook, đây là lựa chọn hoàn hảo nếu bạn muốn một phương pháp dễ dàng để host công cụ tiện lợi này trên hệ thống của mình.
Tóm lại, dù bạn chọn Proxmox hay Docker, việc tự host Jupyter Notebook mang lại sự kiểm soát và bảo mật tối đa cho môi trường lập trình của bạn.
Lập Trình Chuyên Nghiệp Hơn Với Container 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. Tuy nhiên, tiện ích của nó sẽ được nâ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ẻ các notebook của bạn với các lập trình viên khác một cách an toàn và hiệu quả. 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ố không mong muốn với hệ thống home lab của mình, tôi khuyên bạn nên sử dụng Kopia để đồng bộ hóa các notebook và tài liệu lập trình của bạn với một thiết bị sao lưu chuyên dụng. Điều này sẽ giúp bạn yên tâm hơn khi làm việc và đảm bảo an toàn cho dữ liệu quý giá của mình.
Việc tự host Jupyter Notebook không chỉ mang lại sự an toàn và kiểm soát dữ liệu mà còn mở ra cánh cửa cho một môi trường làm việc tùy chỉnh, linh hoạt và mạnh mẽ hơn. Hãy bắt đầu khám phá và tối ưu hóa trải nghiệm lập trình của bạn ngay hôm nay!