Code-Server facile da installare su Ubuntu 20.04

Code-Server facile da installare su Ubuntu 20.04

In questo articolo, ti guideremo all'installazione di Code-Server su Ubuntu 20.04.

Code-server è un'applicazione server open source che serve VS Code su qualsiasi macchina ovunque e vi accede nel browser. Consente di sfruttare potenti server cloud per accelerare le compilazioni e i test e per risparmiare batteria quando si è in movimento.

Prerequisiti

  • Un VPS installato Ubuntu 20.04 con min. consigliato: 4 GB di RAM, 2 vCPU.
  • Un nome di dominio valido che punta al VPS.
  • Accesso come utente root o utente normale con privilegi di amministratore.

Installa Code-Server su Ubuntu 20.04

1. Aggiorna il server

Mantieni aggiornato il server.

# apt update -y

# apt upgrade -y

2. Installa Code-Server

Scarica code-server dal repository ufficiale usando il seguente comando:

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

Estrai il file tar e rinominalo con il code-server usando il seguente comando:

# 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

Rendere eseguibile il codice binario del server di codice.

# cd code-server

Esegui code-server.

./code-server --port 8000

Apri il browser del tuo computer e vai a http://YOUR_IP_ADDRESS:8000. Ti verrà richiesta una password. Utilizzare la password visualizzata nel terminale SSH. Si aprirà l'interfaccia di Visual Studio Code. Per fermare il server, premi  CTRL + C  nel terminale SSH.

3. Creare un servizio di avvio del sistema

Possiamo creare un servizio utilizzando il gestore dei servizi systemd di Linux . Segui questi passi:

Crea un nuovo file per nome code-server.service usando il seguente comando:

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

Copia e incolla il seguente contenuto e sostituiscilo con la password che desideri impostare. Questa sarà la password che utilizzerai per accedere al code-server.

[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

Salva e chiudi il file.

Ora avvia e abilita il code-server.service usando i seguenti comandi:

# systemctl daemon-reload

# systemctl start code-server

# systemctl enable code-server

Apri il browser del tuo computer e vai a http://YOUR_IP_ADDRESS:8000. Ti verrà richiesta una password. Usa la password che hai menzionato nel file code-server.service .

4. Installa e configura Nginx

Per accedere all'installazione tramite un nome di dominio e aggiungere un certificato SSL, si consiglia di impostare un proxy inverso. Per questo scopo dimostrativo, stiamo usando il server web Nginx come proxy inverso.

Per installare Nginx usa il seguente comando:

# apt-get install nginx -y

Disabilita il file di configurazione del sito Nginx predefinito.

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

Crea un nuovo file di configurazione del sito Nginx per code-server.

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

Incolla il seguente frammento nel file, sostituendo example.com con il tuo nome di dominio.

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;
}
}

Abilita la configurazione e riavvia il server web Nginx.

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

Prova il file di configurazione di Nginx.

# nginx -t

Se non si verificano errori, riavviare il servizio nginx .

# systemctl restart nginx

Se stai utilizzando UFW come firewall, consenti le connessioni SSH e Nginx attraverso il firewall e abilita il firewall. Ciò garantirà che l'installazione del code-server sia accessibile solo tramite il proxy inverso Nginx.

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

Vai al tuo nome di dominio per testare l'installazione.

5. Installa Let's Encrypt SSL

Mantieni la connessione sicura tra server e utente finale, si consiglia vivamente di installare il certificato SSL. Let's Encrypt è un certificato SSL gratuito che ha una validità di 90 giorni e verrà rinnovato ogni 90 giorni. Stiamo usando certbot per installare il certificato SSL.

Scarica e installa Certbot.

# apt-get install python3-certbot-nginx

Esegui il seguente comando per avviare il programma di installazione della riga di comando di Certbot, sostituendo example.com con il tuo nome di dominio.

# certbot --nginx -d example.com

Procedi attraverso il programma di installazione interattivo. Quando viene chiesto se reindirizzare o meno il traffico HTTP a HTTPS, scegli di reindirizzare.

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. Installa fail2ban (consigliato)

Fail2ban è un'applicazione che analizza i log per rilevare e mitigare gli attacchi automatici su un server. Quando viene rilevato un numero predefinito di tentativi di accesso non riusciti, fail2ban modificherà gli iptables del server per bloccare l'attaccante per un periodo di tempo predefinito.

Installa gli strumenti di configurazione. Questo è necessario per installare fail2ban.

# apt-get install python3-setuptools -y

Scarica e installa 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

Copia il file di configurazione predefinito jails.conf in jails.local e apri il file copiato in un editor di testo.

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

Incolla il seguente frammento in fondo al file. Puoi modificare i parametri maxretry, findtime e 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

Creare un nuovo file di configurazione del filtro per definire il modello di filtro per trovare tentativi di accesso non riusciti nel registro del server di codice.

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

Incolla il seguente frammento nel file.

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

Riavvia il servizio rsyslog e abilita e avvia il servizio fail2ban.

# systemctl restart rsyslog.service

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

Questo è tutto. L'installazione è stata completata con successo.

In questo articolo ti abbiamo spiegato come installare Code-Server su Ubuntu 20.04


Come usare Python come calcolatrice da riga di comando

Come usare Python come calcolatrice da riga di comando

Sebbene sia possibile utilizzare una calcolatrice grafica sul computer, l'interprete del linguaggio di programmazione Python può fungere anche da calcolatrice da tavolo. È uno scherzo così popolare nella comunità Python che è menzionato nel tutorial ufficiale. Ecco come puoi usare Python come calcolatrice.

Gli 8 migliori blog Java per programmatori

Gli 8 migliori blog Java per programmatori

Come programmatore, dovresti accettare le sfide per sopravvivere e costruire alcune meraviglie nel campo dello sviluppo o della programmazione. Quindi, se stai cercando di imparare un linguaggio di programmazione avanzato per migliorare le tue capacità professionali, Java è una delle migliori prospettive in circolazione.

7 comandi vitali per iniziare con Python per principianti

7 comandi vitali per iniziare con Python per principianti

Imparare un nuovo linguaggio di programmazione come Python diventa facile se hai una tabella di marcia completa che dettaglia quali concetti imparare come principiante e come progredire ulteriormente per raggiungere il prossimo traguardo. Anche i programmatori intermedi dovrebbero spesso rispolverare le proprie nozioni di base per costruire una solida base per se stessi.

Principi di web design reattivo

Principi di web design reattivo

Al giorno d'oggi, è pratica comune creare un sito Web o un'app che regoli la sua interfaccia utente a seconda del browser o del dispositivo. Ci sono due approcci per raggiungere questo obiettivo. Il primo prevede la creazione di versioni diverse del tuo sito Web o della tua app per dispositivi diversi. Ma è inefficiente e può portare a errori imprevedibili.

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Come contare il numero di cifre in un numero usando C++, Python e JavaScript

Lavorare con i numeri è parte integrante della programmazione. Ogni linguaggio di programmazione fornisce supporto per manipolare i numeri in molti modi diversi. In questo articolo imparerai come trovare il numero totale di cifre in un numero intero utilizzando approcci iterativi, basati su log e basati su stringhe.

Le 9 migliori alternative Docker per la gestione dei container

Le 9 migliori alternative Docker per la gestione dei container

I container sono estremamente utili per lo sviluppo, la distribuzione e la gestione del software in un ambiente virtuale. Docker è utile nel processo di containerizzazione, ma non è l'unica piattaforma disponibile. Se stai cercando delle alternative a Docker, non cercare oltre. Questo elenco mostra alcune alternative Docker ricche di funzionalità ed efficienti da utilizzare nel tuo prossimo progetto.

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

Come incorporare i tweet nei tuoi post di WordPress

Come incorporare i tweet nei tuoi post di WordPress

Incorporare servizi di terze parti nei tuoi post di WordPress è un modo entusiasmante per catturare l'interesse di un visitatore. Il contenuto incorporato fornisce anche indicazioni visive che semplificano la scansione. WordPress ha reso facile l'aggiunta di questo tipo di contenuto.

Come eliminare la cartella dei moduli del nodo con npkill

Come eliminare la cartella dei moduli del nodo con npkill

Node.js è un ambiente di runtime JavaScript che consente di eseguire JavaScript al di fuori dei browser Web, rendendolo una scelta popolare per lo sviluppo di tutti i tipi di applicazioni. Parte della sua popolarità è dovuta alla pletora di pacchetti NPM disponibili per facilitare l'esperienza degli sviluppatori.

Come scrivere e compilare il tuo primo codice di solidità

Come scrivere e compilare il tuo primo codice di solidità

Solidity è il linguaggio di programmazione utilizzato dagli smart contract sulla blockchain di Ethereum. È un linguaggio di programmazione orientato agli oggetti e tipizzato in modo statico.