Nền tảng Cloud IDE (Integrated Development Environment) đang được sử dụng ngày càng phổ biến và Eclipse Theia là một trong số đó. Eclipse Theia có khả năng mở rộng thông qua các extension và hỗ trợ nhiều ngôn ngữ lập trình. Để có thể cài đặt Eclipse Theia Cloud IDE Platform trên CentOS 7, hãy cùng tìm hiểu bài viết dưới đây của Vietnix nhé.
Giới thiệu về Eclipse Theia Cloud IDE Platform
Hiện nay, cloud được sử dụng ngày một nhiều, việc áp dụng các cloud IDE platform (Integrated Development Environment) đang dần được phát triển. Cloud IDE có thể truy cập từ mọi loại thiết bị thông qua trình duyệt web và cung cấp nhiều lợi ích cho việc áp dụng các thay đổi của nhiều người cùng lúc trong cùng một dự án.
Làm việc trên cloud IDE sẽ cung cấp một môi trường phát triển và testing một cách thống nhất cho bạn và team, đồng thời giảm thiểu sự không tương thích của các nền tảng. Cloud IDE có thể truy cập thông qua trình duyệt web và có sẵn trên mọi loại thiết bị hiện nay.
Eclipse Theia là cloud IDE mở rộng chạy trên remote server và có thể truy cập từ trình duyệt web. Eclipse Theia được thiết kế và hoạt động một cách trực quan, tương tự như Microsoft Visual Studio Code, hỗ trợ được nhiều ngôn ngữ lập trình, bố cục linh hoạt và có tích hợp terminal. Điều khác biệt giữa Eclipse Theia với các phần mềm cloud IDE khác là tính mở rộng, có thể được sửa đổi bằng cách sử dụng các extension, cho phép bạn tạo một cloud IDE phù hợp với nhu cầu của mình.
Yêu cầu để cài đặt Eclipse Theia Cloud IDE Platform trên CentOS 7
- Một server CentOS 7 với quyền root và một tài khoản non-root. Ở bài hướng dẫn này,
vietnix
sẽ là người dùng non-root. - Docker được cài đặt trên server của bạn. Hãy nhớ đăng xuất và đăng nhập lại sau khi thực hiện yêu cầu này.
- Cài đặt Docker Compose.
- Domain đã được đăng ký. Hướng dẫn này sẽ sử dụng
theia.your-domain
. - Một DNS A record với
theia.your-domain
trỏ đến địa chỉ public IP của server.
Như đã trình bày ở trên, để cài đặt Eclipse Theia Cloud IDE Platform trên CentOS 7, bạn cần một máy chủ cấu hình phù hợp và tên miền đăng ký. Vietnix hiện đang cung cấp các gói dịch vụ thuê máy ảo (VPS) tốc độ cao có hỗ trợ cho hệ điều hành CentOS 7 và các tên miền đa dạng, chi phí hợp lý để bạn lựa chọn.
Sau khi đăng ký dịch vụ VPS và đăng ký tên miền tại Vietnix, bạn có thể cài đặt Eclipse Theia Cloud IDE Platform trên máy chủ của mình dễ dàng và hiệu quả. Đội ngũ kỹ thuật chuyên nghiệp của Vietnix cũng sẽ hỗ trợ bạn trong quá trình sử dụng. Liên hệ ngay với Vietnix để được tư vấn chi tiết hơn.
Bước 1: Triển khai nginx-proxy với Let’s Encrypt
Đầu tiên, bạn triển khai nginx-proxy
và Let’s Encrypt add-on bằng Docker Compose. Việc này cho phép tự động cấp và đổi mới chứng chỉ TLS, để khi bạn triển khai Eclipse Theia sẽ truy cập được tại domain của bạn thông qua HTTPS.
Tiếp theo, bạn sẽ lưu trữ tất cả các file trong ~/eclipse-theia
. Tạo thư mục bằng cách chạy lệnh sau:
mkdir ~/eclipse-theia
Điều hướng đến thư mục vừa tạo:
cd ~/eclipse-theia
Bạn sẽ lưu trữ cấu hình Docker Compose cho nginx-proxy
trong tệp có tên là nginx-proxy-compose.yaml
. Để tạo file, hãy sử dụng lệnh sau bằng trình soạn thảo của bạn:
vi nginx-proxy-compose.yaml
Hãy thêm đoạn lệnh sau vào file mà bạn vừa tạo:
version: '2'
services:
nginx-proxy:
restart: always
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- "/etc/nginx/htpasswd:/etc/nginx/htpasswd"
- "/etc/nginx/vhost.d"
- "/usr/share/nginx/html"
- "/var/run/docker.sock:/tmp/docker.sock:ro"
- "/etc/nginx/certs"
letsencrypt-nginx-proxy-companion:
restart: always
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
volumes_from:
- "nginx-proxy"
Ở đây bạn đang định nghĩa hai service mà Docker Compose sẽ vận hành là nginx-proxy
và tiện ích của Let’s Encrypt đi kèm. Đối với proxy, bạn chỉ định jwilder/nginx-proxy
làm image, map (ánh xạ) HTTP port và HTTPS port, xác định các volume ( ổ đĩa ) sẽ được truy cập trong thời gian vận hành.
Volumes là các thư mục trên server của bạn mà service được xác định sẽ có toàn quyền truy cập, sau đó bạn sẽ sử dụng để thiết lập xác thực người dùng. Để làm được điều này, bạn hãy sử dụng volume đầu tiên, mà dùng để map thư mục local /etc/nginx/htpasswd
đến cùng một thư mục trong container, trong danh sách các volume. Trong thư mục đó, nginx-proxy
mong muốn tìm một file có tên giống với domain mà bạn đã đặt, chứa thông tin đăng nhập để xác thực người dùng theo định dạng htpasswd
(username: hashed_password
).
Đối với add-on, bạn đặt tên cho Docker image và cho phép truy cập vào socket của Docker bằng cách xác định volume. Sau đó, bạn chỉ định add-on sẽ kế thừa quyền truy cập vào ổ đĩa đã được xác định, cho nginx-proxy
. Cả hai service đều cài đặt restart
thành always
, yêu cầu Docker khởi động lại các container trong trường hợp gặp sự cố hoặc reboot hệ thống.
Lưu và đóng file.
Hãy triển khai cấu hình bằng cách chạy lệnh dưới đây:
docker-compose -f nginx-proxy-compose.yaml up -d
Ở đây, bạn truyền tên file nginx-proxy-compose.yaml
vào tham số -f
của lệnh docker-compose
, cho phép chỉ định file cần chạy. Sau đó, bạn truyền up
để chạy các container. -d
cho phép chạy ở chế độ detached ( chế độ nền ), điều này có nghĩa là Docker Compose sẽ chạy các container trong nền.
Output sẽ được hiển thị như sau:
Output
Creating network "eclipse-theia_default" with the default driver
Pulling nginx-proxy (jwilder/nginx-proxy:)...
latest: Pulling from jwilder/nginx-proxy
8d691f585fa8: Pull complete
5b07f4e08ad0: Pull complete
...
Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28
Status: Downloaded newer image for jwilder/nginx-proxy:latest
Pulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)...
latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion
89d9c30c1d48: Pull complete
668840c175f8: Pull complete
...
Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a
Status: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latest
Creating eclipse-theia_nginx-proxy_1 ... done
Creating eclipse-theia_letsencrypt-nginx-proxy-companion_1 ... done
Bước 2: Triển khai Dockerized Eclipse Theia
Ở bước này, bạn sẽ tạo một file chứa các tài khoản được phép đăng nhập. Sau đó, bạn sẽ triển khai Eclipse Theia trên server của mình bằng Docker Compose và hiển thị nó tại domain của mình bằng nginx-proxy
.
Như đã đề cập ở trên, nginx-proxy
mong muốn các tài khoản này được đặt trong một file có tên giống với domain, ở định dạng htpasswd
và được lưu trữ trong thư mục /etc/nginx/htpasswd
trên container. Thư mục local, dùng để map đến thư mục virtual, không cần phải giống với thư mục trong container đã được chỉ định trong cấu hình nginx-proxy
(tức không cần phải giống với /etc/nginx/htpasswd
).
Để tạo tài khoản, trước tiên bạn cần cài đặt htpasswd
bằng cách thực thi lệnh sau:
sudo yum install httpd-tools
httpd-tools
sẽ chứa tiện ích htpasswd
.
Thực thi lệnh sau để tạo thư mục /etc/nginx/htpasswd
:
sudo mkdir -p /etc/nginx/htpasswd
Sau đó, tạo một tệp để lưu trữ thông tin đăng nhập cho domain của bạn:
sudo touch /etc/nginx/htpasswd/theia.your-domain
Bạn hãy lưu ý thay thế theia.your-domain
bằng Eclipse Theia domain của mình.
Để thêm username và password, bạn sử dụng lệnh sau:
sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
Thay thế username
bằng tên người dùng mà bạn muốn. Bạn sẽ được yêu cầu nhập password hai lần. Sau đó, htpasswd
sẽ thêm username và hased password (mật khẩu đã được băm) vào cuối tệp. Lệnh này có thể được sử dụng nhiều lần tùy vào nhu cầu của bạn.
Bây giờ, bạn sẽ cấu hình để triển khai Eclipse Theia. Sau đó, lưu trữ phần cấu hình trong file có tên eclipse-theia-compose.yaml
. Sử dụng trình soạn thảo văn bản để tạo file bằng lệnh như sau:
vi eclipse-theia-compose.yaml
Hãy thêm các dòng sau vào tệp mà bạn vừa tạo:
version: '2.2'
services:
eclipse-theia:
restart: always
image: theiaide/theia:next
init: true
environment:
- VIRTUAL_HOST=theia.your-domain
- LETSENCRYPT_HOST=theia.your-domain
Ở cấu hình này, bạn vừa định nghĩa một service được gọi là eclipse-theia
với restart
được đặt thành always
và theiaide/theia:next
làm container image. Tiếp theo, bạn thiết lập init
thành true
để Docker sử dụng init
như là main process manager khi chạy Eclipse Theia bên trong container.
Sau đó, bạn sẽ chỉ định hai biến môi trường trong environment
là: VIRTUAL_HOST
và LETSENCRYPT_HOST
. VIRTUAL_HOST
được chuyển cho nginx-proxy
và cho biết tại domain nào, container sẽ được hiển thị, trong khi LETSENCRYPT_HOST
được sử dụng bởi tiện ích Let’s Encrypt add-on và chỉ định domain để yêu cầu chứng chỉ TLS. Trừ khi bạn chỉ định một wildcard (ký tự đại diện) làm giá trị cho VIRTUAL_HOST
, thì giá trị của 2 biến môi trường phải như nhau.
Hãy nhớ thay thế theia.your-domain
bằng domain của bạn, sau đó lưu và đóng tệp.
Bạn triển khai Eclipse Theia bằng cách dùng lệnh:
docker-compose -f eclipse-theia-compose.yaml up -d
Output sẽ xuất hiện như sau:
Output
...
Pulling eclipse-theia (theiaide/theia:next)...
next: Pulling from theiaide/theia
63bc94deeb28: Pull complete
100db3e2539d: Pull complete
...
Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109
Status: Downloaded newer image for theiaide/theia:next
Creating eclipse-theia_eclipse-theia_1 ... done
Sau đó, trong trình duyệt của bạn, truy cập vào domain bạn đang sử dụng cho Eclipse Theia. Trình duyệt sẽ hiển thị thông báo yêu cầu bạn đăng nhập. Sau khi đăng nhập thành công, bạn sẽ vào được Eclipse Theia và ngay lập tức thấy GUI của trình soạn thảo. Tại thanh địa chỉ, bạn sẽ thấy biểu tượng ổ khóa cho biết kết nối an toàn. Nếu bạn không thấy biểu tượng ổ khóa, hãy đợi vài phút để chứng chỉ TLS cung cấp, sau đó reload lại trang.
Bước 3: Sử dụng Eclipse Theia Interface
Ở bước này, bạn sẽ tìm hiểu một số tính năng của Eclipse Theia interface.
Ở phía bên trái của IDE, có một hàng dọc gồm bốn nút biểu tượng đại diện cho các tính năng được sử dụng phổ biến nhất.
Thanh này có thể tùy chỉnh, vì vậy bạn có thể di chuyển chúng từ vị trí hiện tại sang một vị trí khác hoặc xóa khỏi thanh. Theo mặc định, chế độ xem đầu tiên sẽ mở bảng Explorer cung cấp tính năng điều hướng dạng cây thư mục cho cấu trúc dự án. Bạn có thể quản lý các thư mục và tệp ở đây – thực hiện thêm, xóa, di chuyển và đổi tên khi cần.
Sau khi tạo một file mới thông qua mục File, bạn sẽ thấy một tệp trống được mở trong tab mới. Khi lưu, bạn có thể xem tên tệp trong bảng Explorer. Bạn hãy nhấp chuột phải vào trong vùng của Explorer và chọn New Folder để tạo thư mục. Đồng thời, bạn có thể mở rộng một thư mục bằng cách nhấp vào tên thư mục, kéo và thả các tệp và thư mục để di chuyển đến vị trí mới.
Tính năng tiếp theo là tìm kiếm và thay thế. Sau đó, mục tiếp theo cung cấp cái nhìn tổng quan về source control system mà bạn có thể đang sử dụng, chẳng hạn như Git.
Tính năng cuối cùng sẽ cung cấp tất cả các action phổ biến để debug. Bạn có thể lưu cấu hình debugging trong launch.json
.
Phần trung tâm của GUI sẽ là nơi để bạn lập trình, có thể tách chúng theo các tab để chỉnh sửa code của mình. Bạn có thể thay đổi phần giao diện lập trình hiện tại thành dạng lưới hoặc thành các file hiển thị song song. Cũng giống như tất cả các IDE ngày nay, Eclipse Theia hỗ trợ highlight syntax cho code của bạn.
Bạn có thể truy cập vào terminal bằng cách nhấn tổ hợp phím CTRL+SHIFT+ ` hoặc chọn mục Terminal ở thanh menu và chọn New Terminal. Terminal sẽ được hiển thị trong một bảng điều khiển ở phía dưới màn hình và thư mục làm việc của nó sẽ được đặt thành workspace của project, chứa các tệp và thư mục được hiển thị trong bảng Explorer.
Ngoài ra, bạn cũng có thể tham khảo thêm về cấu hình NTP để sử dụng trong NTP Pool Project trên CentOS 7, việc này sẽ giúp bạn tăng độ chính xác thời gian hệ thống và cải thiện hiệu suất hoạt động, từ đó giúp tăng hiệu suất và đáp ứng tốt hơn cho nhu cầu của người dùng.
Lời kết
Trên đây là các bước hướng dẫn chi tiết cài đặt Eclipse Theia Cloud IDE Platform trên CentOS 7. Việc sử dụng Eclipse Theia Cloud IDE Platform sẽ giúp cho các nhà phát triển có thể dễ dàng truy cập và làm việc trên các dự án phát triển đa nền tảng, từ đó tăng hiệu suất và tiết kiệm thời gian. Nếu có vấn đề góp ý hay bất kỳ thắc mắc nào, bạn hãy để lại bình luận bên dưới nhé, Vietnix sẽ hỗ trợ bạn nhanh nhất.