Dễ dàng cài đặt Code-Server trên Ubuntu 20.04

Dễ dàng cài đặt Code-Server trên Ubuntu 20.04

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cài đặt Code-Server trên Ubuntu 20.04.

Máy chủ mã là một ứng dụng máy chủ mã nguồn mở phục vụ Mã VS trên bất kỳ máy nào ở bất kỳ đâu và truy cập nó trong trình duyệt. Nó cho phép tận dụng các máy chủ đám mây mạnh mẽ để tăng tốc độ biên dịch và kiểm tra cũng như tiết kiệm pin khi di chuyển.

Điều kiện tiên quyết

  • Một VPS được cài đặt Ubuntu 20.04 với tối thiểu. khuyến nghị: RAM 4GB, 2 vCPU.
  • Tên miền hợp lệ trỏ đến VPS.
  • Quyền truy cập của người dùng root hoặc người dùng bình thường có đặc quyền quản trị.

Cài đặt Code-Server trên Ubuntu 20.04

1. Cập nhật máy chủ

Giữ cho máy chủ được cập nhật.

# apt update -y

# apt upgrade -y

2. Cài đặt Máy chủ Mã

Tải xuống máy chủ mã từ kho lưu trữ chính thức bằng lệnh sau:

# cd /home
# wget https://github.com/cdr/code-server/releases/download/v3.11.0/code-server-3.11.0-linux-amd64.tar.gz

Giải nén tệp tar và đổi tên bằng máy chủ mã bằng lệnh sau:

# tar xzf code-server-3.11.0-linux-amd64.tar.gz && rm code-server-3.11.0-linux-amd64.tar.gz
# mv code-server-3.11.0-linux-amd64 code-server

Làm cho mã máy chủ nhị phân có thể thực thi được.

# cd code-server

Chạy máy chủ mã.

./code-server --port 8000

Mở trình duyệt máy tính của bạn và điều hướng đến http: // YOUR_IP_ADDRESS: 8000. Bạn sẽ được nhắc nhập mật khẩu. Sử dụng mật khẩu được hiển thị trong thiết bị đầu cuối SSH. Giao diện Visual Studio Code sẽ mở ra. Để dừng máy chủ, nhấn  CTRL + C  trong thiết bị đầu cuối SSH.

3. Tạo một dịch vụ khởi động hệ thống

Chúng ta có thể tạo một dịch vụ bằng trình quản lý dịch vụ systemd của Linux . Làm theo các bước sau:

Tạo một tệp mới theo tên code-server.service bằng lệnh sau:

# vi /lib/systemd/system/code-server.service

Sao chép và dán nội dung sau đây và thay thế bằng mật khẩu bạn muốn đặt. Đây sẽ là mật khẩu bạn sẽ sử dụng để đăng nhập vào máy chủ mã.

[Unit]
Description=Code Server Service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/home/code-server
Environment='PASSWORD='
ExecStart=/home/code-server/code-server --port 8000
StandardOutput=file:/var/log/code-server-output.log
StandardError=file:/var/log/code-server-error.log

[Install]
WantedBy=multi-user.target

Lưu và đóng tập tin.

Bây giờ, hãy khởi động và kích hoạt code-server.service bằng các lệnh sau:

# systemctl daemon-reload

# systemctl start code-server

# systemctl enable code-server

Mở trình duyệt máy tính của bạn và điều hướng đến http: // YOUR_IP_ADDRESS: 8000. Bạn sẽ được nhắc nhập mật khẩu. Sử dụng mật khẩu bạn đã đề cập trong tệp code-server.service .

4. Cài đặt và cấu hình Nginx

Để truy cập cài đặt qua tên miền và thêm chứng chỉ SSL, bạn nên thiết lập proxy ngược. Với mục đích trình diễn này, chúng tôi đang sử dụng máy chủ web Nginx làm proxy ngược.

Để cài đặt Nginx, hãy sử dụng lệnh sau:

# apt-get install nginx -y

Tắt tệp cấu hình trang Nginx mặc định.

# rm /etc/nginx/sites-enabled/default

Tạo tệp cấu hình trang Nginx mới cho máy chủ mã.

# vi /etc/nginx/sites-available/code-server

Dán đoạn mã sau vào tệp, thay thế example.com bằng tên miền của riêng bạn.

server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Kích hoạt cấu hình và khởi động lại máy chủ web Nginx.

# ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/

Kiểm tra tệp cấu hình Nginx.

# nginx -t

Nếu không có lỗi xảy ra, hãy khởi động lại dịch vụ nginx .

# systemctl restart nginx

Nếu bạn đang sử dụng UFW làm tường lửa, hãy cho phép các kết nối SSH và Nginx thông qua tường lửa và bật tường lửa. Điều này sẽ đảm bảo rằng cài đặt máy chủ mã chỉ có thể truy cập được thông qua proxy ngược Nginx.

# ufw allow ssh
# ufw allow 'Nginx Full'
# ufw enable

Navigate to your domain name to test the installation.

5. Install Let’s Encrypt SSL

Keep the connection secure between server and end-user, it is highly recommended to install SSL certificate. Let’s Encrypt is a free SSL certificate which is come with 90 days validity and it will be renewed for every 90 days. We’re using certbot to install the SSL certificate.

Download and install Certbot.

# apt-get install python3-certbot-nginx

Execute the following command to launch Certbot’s command-line installer, replacing example.com with your own domain name.

# certbot --nginx -d example.com

Proceed through the interactive installer. When asked whether or not to redirect HTTP traffic to HTTPS, choose to redirect.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server

6. Install fail2ban (Recommended)

Fail2ban là một ứng dụng phân tích các bản ghi để phát hiện và giảm thiểu các cuộc tấn công tự động vào máy chủ. Khi số lần đăng nhập không thành công được xác định trước được phát hiện, fail2ban sẽ thay đổi iptables của máy chủ để chặn kẻ tấn công trong một khoảng thời gian được xác định trước.

Cài đặt các công cụ thiết lập. Điều này là bắt buộc để cài đặt fail2ban.

# apt-get install python3-setuptools -y

Tải xuống và cài đặt fail2ban.

git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python3 setup.py install
cp build/fail2ban.service /lib/systemd/system/fail2ban.service
cd .. && rm -rf fail2ban

Sao chép tệp cấu hình mặc định jails.conf sang jails.local và mở tệp đã sao chép trong trình soạn thảo văn bản.

# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local

Dán đoạn mã sau vào cuối tệp. Bạn có thể thay đổi các tham số maxretry, findtime và bantime.

[code-server]
enabled = true
logpath = /var/log/code-server-output.log
# maxretry: The amount of unsuccessful login attempts after which a ban is issued.
maxretry = 5
# findtime: The amount of time within which the login attempts must occur.
findtime = 10m
# bantime: The amount of time for which an IP is banned from accessing the server.
bantime = 10m

Tạo tệp cấu hình bộ lọc mới để xác định dạng bộ lọc nhằm tìm các lần đăng nhập không thành công trong nhật ký máy chủ mã.

# vi /etc/fail2ban/filter.d/code-server.conf

Dán đoạn mã sau vào tệp.

[Definition]
failregex = Failed login attempt {\'xForwardedFor\':\'\'.*
ignoreregex =
datepattern = "timestamp':{EPOCH}}$

Khởi động lại dịch vụ rsyslog và bật và khởi động dịch vụ fail2ban.

# systemctl restart rsyslog.service

# systemctl start fail2ban.service
# systemctl enable fail2ban.service

Đó là nó. Quá trình cài đặt hoàn tất thành công.

Trong bài viết này, chúng tôi đã giải thích cho bạn cách cài đặt Code-Server trên Ubuntu 20.04


Cách sử dụng Python làm máy tính dòng lệnh

Cách sử dụng Python làm máy tính dòng lệnh

Trong khi bạn có thể sử dụng máy tính đồ họa trên máy tính của mình, trình thông dịch ngôn ngữ lập trình Python có thể đóng vai trò như một máy tính bàn. Đó là một trò đùa chạy phổ biến trong cộng đồng Python mà nó đã được đề cập trong hướng dẫn chính thức. Đây là cách bạn có thể sử dụng Python làm máy tính.

8 blog Java tốt nhất dành cho lập trình viên

8 blog Java tốt nhất dành cho lập trình viên

Là một lập trình viên, bạn nên chấp nhận những thách thức để tồn tại và xây dựng một số kỳ quan trong lĩnh vực phát triển hoặc lập trình. Do đó, nếu bạn đang muốn học một ngôn ngữ lập trình nâng cao để nâng cao kỹ năng nghề nghiệp của mình, thì Java là một trong những triển vọng tốt nhất.

7 lệnh quan trọng để bắt đầu với Python cho người mới bắt đầu

7 lệnh quan trọng để bắt đầu với Python cho người mới bắt đầu

Học một ngôn ngữ lập trình mới như Python sẽ trở nên dễ dàng nếu bạn có một lộ trình toàn diện nêu chi tiết những khái niệm nào cần học khi mới bắt đầu và cách tiến bộ hơn nữa để đạt được cột mốc quan trọng tiếp theo. Ngay cả những lập trình viên trung cấp cũng nên thường xuyên học lại những kiến ​​thức cơ bản của họ để xây dựng nền tảng vững chắc cho bản thân.

Nguyên tắc thiết kế web đáp ứng

Nguyên tắc thiết kế web đáp ứng

Ngày nay, việc xây dựng một trang web hoặc ứng dụng điều chỉnh giao diện người dùng của nó tùy thuộc vào trình duyệt hoặc thiết bị. Có hai cách tiếp cận để đạt được mục tiêu này. Đầu tiên liên quan đến việc tạo các phiên bản khác nhau của trang web hoặc ứng dụng của bạn cho các thiết bị khác nhau. Nhưng nó không hiệu quả và có thể dẫn đến các lỗi không thể đoán trước.

Cách đếm số chữ số trong một số bằng C ++, Python và JavaScript

Cách đếm số chữ số trong một số bằng C ++, Python và JavaScript

Làm việc với các con số là một phần không thể thiếu trong lập trình. Mọi ngôn ngữ lập trình đều cung cấp hỗ trợ để thao tác với các con số theo nhiều cách khác nhau. Trong bài viết này, bạn sẽ học cách tìm tổng số chữ số trong một số nguyên bằng cách sử dụng các phương pháp lặp lại, dựa trên nhật ký và dựa trên chuỗi.

9 giải pháp thay thế Docker tốt nhất để quản lý vùng chứa

9 giải pháp thay thế Docker tốt nhất để quản lý vùng chứa

Vùng chứa rất có lợi cho việc phát triển, triển khai và quản lý phần mềm trong môi trường ảo. Docker hữu ích trong quá trình container hóa, nhưng nó không phải là nền tảng duy nhất xung quanh. Nếu bạn đang tìm kiếm một số lựa chọn thay thế cho Docker, không cần tìm đâu xa. Danh sách này giới thiệu một số lựa chọn thay thế Docker hiệu quả và giàu tính năng để sử dụng trong dự án tiếp theo của bạn.

SQL so với NoSQL: Cơ sở dữ liệu tốt nhất cho dự án tiếp theo của bạn là gì?

SQL so với NoSQL: Cơ sở dữ liệu tốt nhất cho dự án tiếp theo của bạn là gì?

SQL so với NoSQL: Cơ sở dữ liệu tốt nhất cho dự án tiếp theo của bạn là gì?

Cách nhúng Tweet vào bài viết WordPress của bạn

Cách nhúng Tweet vào bài viết WordPress của bạn

Nhúng các dịch vụ của bên thứ ba vào các bài đăng WordPress của bạn là một cách thú vị để thu hút sự quan tâm của khách truy cập. Nội dung được nhúng cũng cung cấp các dấu hiệu trực quan giúp quét dễ dàng hơn. WordPress đã làm cho việc thêm loại nội dung này trở nên dễ dàng.

Cách xóa thư mục mô-đun nút bằng npkill

Cách xóa thư mục mô-đun nút bằng npkill

Node.js là một môi trường thời gian chạy JavaScript cho phép bạn chạy JavaScript bên ngoài trình duyệt web, làm cho nó trở thành một lựa chọn phổ biến để phát triển tất cả các loại ứng dụng. Một phần của sự phổ biến của nó là do có rất nhiều gói NPM để giúp nhà phát triển dễ dàng trải nghiệm.

Cách viết và biên dịch mã vững chắc đầu tiên của bạn

Cách viết và biên dịch mã vững chắc đầu tiên của bạn

Solidity là ngôn ngữ lập trình được sử dụng bởi các hợp đồng thông minh trên chuỗi khối Ethereum. Nó là một ngôn ngữ lập trình hướng đối tượng, được định kiểu tĩnh.