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