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ụ coding của bạn trở nê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 ứng dụng ghi chú, trực quan hóa dữ liệu và trình chỉnh sửa code trực tiếp. Đối với những người thường xuyên làm việc với các script Python, Jupyter Notebook là công cụ tuyệt vời để ghi chú trong các buổi học và chia sẻ những đoạn mã công phu với bạn bè hoặc đối thủ lập trình.
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. Do đó, dưới đây là hướng dẫn chi tiết về cách bạn có thể tự host Jupyter Notebook (và thậm chí cả JupyterLab) trên máy trạm của mình, giúp bạn hoàn toàn kiểm soát dữ liệu và nâng cao bảo mật.
Triển khai Container Jupyter Notebook
Việc triển khai các ứng dụng tự host có thể thực hiện theo nhiều cách khác nhau, và Jupyter Notebook cũng không ngoại lệ. Dù bạn là người dùng Proxmox hay ưa thích Docker/Podman, đều có phương pháp phù hợp để bạn có thể cài đặt Jupyter Notebook một cách nhanh chóng.
1. Sử dụng Proxmox VE-Helper Script
Nếu bạn là người dùng Proxmox Virtual Environment (PVE), bạn có thể tận dụng kho script Proxmox VE-Helper cực kỳ hữu ích để cài đặt Jupyter Notebook chỉ trong vài phút. Để thực hiện, hãy làm theo các bước sau:
- Mở tab Shell của node Proxmox bạn muốn sử dụng.
Mở tab Shell của một node Proxmox
- Dán lệnh sau vào giao diện terminal và nhấn phím Enter:
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/jupyternotebook.sh)"
Thực thi lệnh triển khai Jupyter Notebook trên Proxmox
- Chọn Yes khi Proxmox hỏi quyền cài đặt Jupyter Notebook và chọn Default Settings cho container.
Chọn cấu hình mặc định cho Jupyter Notebook LXC trên Proxmox
- Khi script hoàn tất quá trình cài đặt, 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.
Truy cập Jupyter Notebook LXC qua địa chỉ IP
- Vì Jupyter Notebook yêu cầu một mã thông báo (token) để xác thực, bạn 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 để lấy secret token cho Jupyter Notebook LXC
- Chuyển đến giao diện web của Jupyter Notebook, dán token vào trường tương ứng và nhập mật khẩu để dễ dàng đăng nhập vào Dashboard sau này.
Sao chép token vào giao diện web của Jupyter Notebook
2. Sử dụng Docker hoặc Podman
Ngoài ra, bạn có thể lựa chọn triển khai Jupyter Notebook thông qua Docker hoặc Podman trực tiếp trên máy tính (PC) của mình hoặc trên một máy ảo (VM) nếu bạn muốn. Đây là một phương pháp linh hoạt và phổ biến.
- Khởi chạy ứng dụng terminal có sẵn trong hệ điều hành của bạn (ví dụ: Command Prompt, PowerShell trên Windows, Terminal trên Linux/macOS).
- Chạy lệnh
docker pull
để tải ảnh 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 ả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
Sử dụng lệnh docker run để triển khai container Jupyter Notebook
- Bạn có thể truy cập giao diện người dùng (UI) của Jupyter Notebook bằng liên kết được tạo ra trong terminal Linux.
Truy cập giao diện web của Jupyter Notebook sau khi triển khai Docker
Cá nhân tôi khuyên bạn nên sử dụng phương pháp Docker, vì nó cho phép bạn tận dụng các tính năng bổ sung như console, trình chỉnh sửa và khả năng cộng tác được tích hợp 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ụ tiện lợi này trên hệ thống của mình.
Nâng tầm trải nghiệm với Jupyter Notebook tự host
Mặt dù bản thân container Jupyter Notebook/JupyterLab đã có đủ cá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ó 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. 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 của mình do một sự cố không mong muốn với hệ thống home lab, tôi khuyên bạn nên sử dụng Kopia để đồng bộ hóa các notebook và tài liệu code của mình với một thiết bị sao lưu chuyên dụng.
Kết luận
Việc tự host Jupyter Notebook mang lại sự linh hoạt và quyền kiểm soát tuyệt đối đối với các dự án và dữ liệu lập trình của bạn. Cho dù bạn chọn triển khai thông qua Proxmox, Docker hay Podman, quá trình này đều tương đối đơn giản và mang lại lợi ích đáng kể về quyền riêng tư và hiệu suất. Bằng cách tích hợp thêm các công cụ như Tailscale hay Kopia, bạn còn có thể nâng cao khả năng truy cập và bảo vệ dữ liệu, giúp quy trình làm việc trở nên liền mạch và an toàn hơn bao giờ hết.
Hãy bắt đầu tự host Jupyter Notebook ngay hôm nay để trải nghiệm sự tự chủ trong công việc lập trình của bạn! Nếu có bất kỳ câu hỏi hoặc chia sẻ kinh nghiệm nào, đừng ngần ngại để lại bình luận phía dưới nhé.