Giao diện Code-Server đang tạo file Docker Compose, minh họa khả năng phát triển trên nền web.
Máy Tính

Code-Server: Biến VS Code thành môi trường phát triển trên trình duyệt từ xa hiệu quả

Mặc dù cung cấp ít chức năng hơn các IDE đầy đủ, trình soạn thảo mã vẫn là lựa chọn tuyệt vời khi bạn muốn chỉnh sửa nhanh chóng các tệp cấu hình, tập lệnh và chương trình của mình. Chúng thường khá nhẹ, đi kèm với một trình gỡ lỗi mạnh mẽ, và một số trình soạn thảo mã như VS Code thậm chí còn cung cấp khá nhiều tính năng mà bạn thường chỉ tìm thấy trong các môi trường phát triển hoàn chỉnh. VS Code, đặc biệt, tương thích với hầu hết các hệ điều hành máy tính để bàn và có thể trở thành một công cụ lập trình mạnh mẽ với bộ tiện ích mở rộng phù hợp.

Tuy nhiên, sẽ thế nào nếu bạn không muốn làm lộn xộn thiết bị chính của mình với các dự án mã hóa và các tệp VS Code bổ sung? Bạn có thể xây dựng một môi trường phát triển hoàn chỉnh bên trong máy ảo (VM) hoặc máy chủ từ xa. Nhưng làm như vậy đòi hỏi một chiếc PC có cấu hình đủ mạnh để đạt hiệu suất tốt, và bạn có thể gặp phải các vấn đề về độ trễ khi sử dụng phiên RDP. Cài đặt VS Code trên thiết bị khách và sử dụng tiện ích mở rộng Remote – SSH cũng là một giải pháp, nhưng có một phương pháp dễ dàng và tiện lợi hơn để thực hiện điều này: triển khai Code-Server bên trong một máy chủ làm việc.

Code-Server là gì?

Hơn cả VS Code chạy trên máy chủ

Về cơ bản, Code-Server là một phiên bản “fork” được vá lỗi của VS Code quen thuộc, chạy trên một hệ thống tập trung và có thể được truy cập từ các thiết bị khác trong hệ thống máy tính của bạn. Tuy nhiên, thay vì yêu cầu bạn cài đặt trình soạn thảo mã trên cả máy khách và máy chủ trước khi ghép nối chúng bằng một tiện ích mở rộng, Code-Server có thể được triển khai trên máy chủ làm việc của bạn và luôn có thể truy cập được từ các trình duyệt web. Bằng cách đó, bạn có thể chỉnh sửa các dự án mã hóa của mình từ hầu hết mọi thiết bị, bao gồm cả điện thoại thông minh và máy tính bảng.

Giao diện Code-Server đang tạo file Docker Compose, minh họa khả năng phát triển trên nền web.Giao diện Code-Server đang tạo file Docker Compose, minh họa khả năng phát triển trên nền web.

Ngoài ra, việc phơi bày Code-Server ra các mạng bên ngoài cũng dễ dàng hơn nhiều. Tôi ưu tiên sử dụng Tailscale hơn các lựa chọn khác và đã trải nghiệm độ trễ tối thiểu khi truy cập phiên bản Code-Server của mình từ một mạng khác so với máy chủ gốc. Nhưng bạn cũng có thể tùy chỉnh với các dịch vụ reverse proxy khi phơi bày trình soạn thảo mã này ra Internet, mặc dù tôi khuyên bạn nên thiết lập một tiện ích xác thực phù hợp như OAuth2 Proxy khi thực hiện.

Tuy nhiên, vẫn tồn tại một hạn chế lớn

Mặc dù bản chất tối ưu của Code-Server giúp nó tốt hơn cho việc chỉnh sửa mã trên các thiết bị di động (và cả hệ thống thông thường) qua mạng, nó vẫn có một điểm yếu lớn: ứng dụng này không tương thích với toàn bộ bộ tiện ích mở rộng có sẵn trong VS Code. Không giống như phần lớn các dịch vụ cốt lõi có sẵn trong VS Code, thị trường tiện ích mở rộng – bao gồm một số plugin do Microsoft phát hành – không phải là mã nguồn mở. Trên thực tế, gã khổng lồ công nghệ Redmond cấm các dịch vụ bên thứ ba tận dụng thị trường VS Code.

Danh sách tiện ích mở rộng (extensions) khả dụng trên Code-Server từ Open VSX Registry, cho thấy sự khác biệt so với VS Code.Danh sách tiện ích mở rộng (extensions) khả dụng trên Code-Server từ Open VSX Registry, cho thấy sự khác biệt so với VS Code.

Do đó, Code-Server dựa vào Open VSX Registry mã nguồn mở cho các tiện ích mở rộng của nó. May mắn thay, hầu hết các tiện ích mở rộng yêu thích của tôi đều hoạt động ngay lập tức trên Code-Server, bao gồm các công cụ mạnh mẽ như Dendron, Prettier và Git Graph. Về mặt kỹ thuật, bạn cũng có thể sử dụng một số cách giải quyết để đồng bộ hóa tiện ích mở rộng VS Code của mình với Code-Server, nhưng một số plugin như bộ Remote Development, Live Share và GitHub Copilot sẽ không khả dụng trên Code-Server – điều này có thể là một vấn đề lớn nếu bạn phụ thuộc vào chúng cho khối lượng công việc lập trình của mình.

Hướng dẫn triển khai Code-Server

Với phần lý thuyết đã rõ, đã đến lúc đi sâu vào chi tiết việc tạo một phiên bản Code-Server. Giống như các ứng dụng khác trong lĩnh vực tự host, có rất nhiều cách để khởi chạy Code-Server trên máy chủ làm việc của bạn, mặc dù phương pháp cURL chính thức là đơn giản nhất.

Phương pháp cURL chính thức: Đơn giản nhất để bắt đầu

Miễn là bạn đang sử dụng máy Linux, bạn có thể mở terminal và khởi tạo một phiên bản Code-Server bằng cách chạy lệnh curl -fsSL https://code-server.dev/install.sh | sh trong terminal. Sau khi quá trình cài đặt hoàn tất, bạn có thể chạy lệnh sudo systemctl enable --now code-server@$USER và nhập 127.0.0.1:8080 vào trình duyệt web để mở giao diện người dùng Code-Server. Để làm cho nó có thể truy cập được cho tất cả các thiết bị trong mạng cục bộ của bạn, bạn sẽ muốn chạy lệnh code-server --bind-addr 0.0.0.0:8080.

Trên một máy Windows, bạn có thể cài đặt Code-Server thông qua một bản phân phối WSL (Windows Subsystem for Linux). Ngoài ra, nếu bạn không muốn cấu hình WSL, bạn có thể cài đặt VirtualBox và triển khai Code-Server, mặc dù bạn sẽ cần một máy tính cấu hình khá tốt để chạy hypervisor Type-2 này.

Triển khai Code-Server bằng Container hóa

Nếu bạn thuộc nhóm người ưa thích container hóa, bạn có thể thử chạy Code-Server bằng Docker runtime quen thuộc. Kho lưu trữ LinuxServer cung cấp phương pháp đáng tin cậy nhất để chạy Code-Server dưới dạng container. Sau khi bạn đã tạo tệp compose bằng cách thực hiện lệnh sudo nano docker-compose.yml trong terminal, bạn sẽ phải sao chép mã cần thiết từ trang Docker Hub chính thức vào tệp. Hãy đảm bảo chỉnh sửa tham số /path/to/code-server/config bằng thư mục thực tế nơi bạn muốn lưu trữ các tệp Code-Server. Sau đó, bạn có thể khởi tạo container bằng cách thực hiện lệnh sudo docker compose up -d.

Tạo file docker-compose.yml để triển khai Code-Server bằng Docker, minh họa quy trình container hóa.Tạo file docker-compose.yml để triển khai Code-Server bằng Docker, minh họa quy trình container hóa.

Ngoài ra, nhiều nền tảng container hóa, bao gồm CasaOS, UmbrelOS, Cosmos và Runtipi, cho phép bạn triển khai một container Code-Server dưới dạng ứng dụng – và đây là một phương pháp tuyệt vời cho những người tận dụng các môi trường dễ sử dụng này cho các dự án container của họ.

Cài đặt trên Proxmox LXC: Yêu cầu thêm vài bước

Không giống như hầu hết các dịch vụ tự host mà tôi đã triển khai dưới dạng LXC trong Proxmox, những người có máy chủ PVE phải đi đường vòng để chạy Code-Server. Đó là vì lệnh Proxmox VE Helper-Scripts cho Code-Server hoạt động như một tiện ích bổ sung cho một LXC hiện có, thay vì tự động tạo một container mới.

Do đó, bạn sẽ phải tự triển khai container cơ sở. Việc này không quá khó, vì bạn có thể tải mẫu TurnKey cho Debian LXC trong tab CT Templates của ổ đĩa cục bộ (lvm) của mình. Sau đó, bạn có thể triển khai một LXC mới bằng cách sử dụng mẫu. Tôi khuyên bạn nên cấp cho nó ít nhất 2GB RAM, 4 nhân CPU, 15GB bộ nhớ (hoặc nhiều hơn, nếu bạn làm việc trên các dự án phức tạp) và một địa chỉ IPv4 dựa trên DHCP. Khi LXC đã khởi động và chạy, bạn sẽ muốn chạy các lệnh sau để triển khai phiên bản Code-Server:

  • apt update && apt upgrade -y
  • apt install curl -y
  • bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/coder-code-server.sh)"

Xây dựng môi trường phát triển tập trung cho nhu cầu lập trình của bạn

Là một người thường xuyên chuyển đổi giữa nhiều thiết bị mỗi ngày, việc lưu trữ tất cả các tệp chương trình, tập lệnh và dự án của tôi trong một máy chủ giúp tôi dễ dàng tiếp tục công việc trên bất kỳ hệ thống nào của mình. Lợi thế lớn nhất của Code-Server trong thiết lập này là tôi có thể sử dụng nó trên iPad và máy tính bảng Android của mình, mặc dù tôi vẫn khá tiếc vì không thể sử dụng bộ tiện ích mở rộng Remote Development. Nhưng nếu không có nhược điểm đó, đây thực sự là một bổ sung tuyệt vời cho môi trường làm việc lập trình của tôi.

Giao diện Code-Server đang chạy ổn định trên Proxmox LXC, thể hiện môi trường phát triển tập trung.Giao diện Code-Server đang chạy ổn định trên Proxmox LXC, thể hiện môi trường phát triển tập trung.

Code-Server mở ra một kỷ nguyên mới về tính linh hoạt cho các lập trình viên, cho phép họ làm việc hiệu quả từ bất cứ đâu, trên bất kỳ thiết bị nào có trình duyệt web. Đây là một giải pháp lý tưởng cho những ai tìm kiếm sự tiện lợi của VS Code mà không bị ràng buộc bởi phần cứng cục bộ.

Bạn đã thử nghiệm Code-Server hay các giải pháp môi trường phát triển từ xa tương tự chưa? Hãy chia sẻ kinh nghiệm và ý kiến của bạn về công cụ này trong phần bình luận bên dưới nhé!

Related posts

Pocket Dừng Hoạt Động: 5 Giải Pháp Quản Lý Bookmark Tự Host Ưu Việt Nên Dùng

Administrator

Tại Sao Photoshop Vẫn Là “Vua” Trong Lĩnh Vực Chỉnh Sửa Ảnh Dù Có Nhiều Đối Thủ?

Administrator

Nvidia Phát Động Cuộc Thi Mod RTX Remix Lớn Nhất: Tổng Giải Thưởng Hơn $50.000

Administrator