Eenvoudig te installeren codeserver op Ubuntu 20.04

Eenvoudig te installeren codeserver op Ubuntu 20.04

In dit artikel zullen we u begeleiden bij het installeren van Code-Server op Ubuntu 20.04.

Code-server is een open-source servertoepassing die VS-code op elke machine waar dan ook bedient en deze in de browser opent. Het maakt het gebruik van krachtige cloudservers mogelijk om compilaties en tests te versnellen en om onderweg batterij te besparen.

Vereisten

  • Een Ubuntu 20.04 geïnstalleerde VPS met min. aanbevolen: 4 GB RAM, 2 vCPU's.
  • Een geldige domeinnaam die verwijst naar de VPS.
  • Een root-gebruikerstoegang of een normale gebruiker met beheerdersrechten.

Installeer Code-Server op Ubuntu 20.04

1. Werk de server bij

Houd de server up-to-date.

# apt update -y

# apt upgrade -y

2. Installeer de codeserver

Download code-server van de officiële repository met behulp van de volgende opdracht:

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

Pak het tar- bestand uit en hernoem met de code-server met behulp van de volgende opdracht:

# 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

Maak de code-server binair uitvoerbaar.

# cd code-server

Voer codeserver uit.

./code-server --port 8000

Open uw computerbrowser en ga naar http://YOUR_IP_ADDRESS:8000. U wordt gevraagd om een ​​wachtwoord. Gebruik het wachtwoord dat wordt weergegeven in de SSH-terminal. De Visual Studio Code-interface wordt geopend. Om de server te stoppen, drukt u op  CTRL + C  in de SSH-terminal.

3. Maak een opstartservice voor het systeem

We kunnen een service maken met Linux's systemd service manager. Volg deze stappen:

Maak een nieuw bestand met de naam code-server.service met behulp van de volgende opdracht:

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

Kopieer en plak de volgende inhoud en vervang deze door het wachtwoord dat u wilt instellen. Dit is het wachtwoord dat u gaat gebruiken om in te loggen op de codeserver.

[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

Sla het bestand op en sluit het.

Start en schakel nu de code-server.service in met de volgende opdrachten:

# systemctl daemon-reload

# systemctl start code-server

# systemctl enable code-server

Open uw computerbrowser en ga naar http://YOUR_IP_ADDRESS:8000. U wordt gevraagd om een ​​wachtwoord. Gebruik het wachtwoord dat u hebt vermeld in het bestand code-server.service .

4. Installeer en configureer Nginx

Om toegang te krijgen tot de installatie via een domeinnaam en om een ​​SSL-certificaat toe te voegen, is het aan te raden om een ​​reverse proxy in te stellen. Voor dit demonstratiedoel gebruiken we de Nginx-webserver als een reverse proxy.

Gebruik de volgende opdracht om Nginx te installeren:

# apt-get install nginx -y

Schakel het standaard Nginx-siteconfiguratiebestand uit.

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

Maak een nieuw Nginx-siteconfiguratiebestand voor codeserver.

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

Plak het volgende fragment in het bestand en vervang example.com door uw eigen domeinnaam.

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

Schakel de configuratie in en start de Nginx-webserver opnieuw.

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

Test het Nginx-configuratiebestand.

# nginx -t

Als er geen fout optreedt, start u de nginx- service opnieuw.

# systemctl restart nginx

Als u UFW als firewall gebruikt, laat dan SSH- en Nginx-verbindingen via de firewall toe en schakel de firewall in. Dit zorgt ervoor dat de code-serverinstallatie alleen toegankelijk is via de Nginx reverse proxy.

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

Navigeer naar uw domeinnaam om de installatie te testen.

5. Installeer Let's Encrypt SSL

Houd de verbinding tussen server en eindgebruiker veilig, het wordt sterk aanbevolen om een ​​SSL-certificaat te installeren. Let's Encrypt is een gratis SSL-certificaat dat 90 dagen geldig is en elke 90 dagen wordt vernieuwd. We gebruiken certbot om het SSL-certificaat te installeren.

Download en installeer Certbot.

# apt-get install python3-certbot-nginx

Voer de volgende opdracht uit om het opdrachtregelinstallatieprogramma van Certbot te starten, waarbij voorbeeld.com wordt vervangen door uw eigen domeinnaam.

# certbot --nginx -d example.com

Doorloop het interactieve installatieprogramma. Wanneer u wordt gevraagd of u HTTP-verkeer wilt omleiden naar HTTPS, kiest u voor omleiden.

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. Installeer fail2ban (aanbevolen)

Fail2ban is een applicatie die logboeken parseert om geautomatiseerde aanvallen op een server te detecteren en te beperken. Wanneer een vooraf bepaald aantal mislukte inlogpogingen wordt gedetecteerd, zal fail2ban de iptables van de server wijzigen om de aanvaller voor een vooraf bepaalde tijd te blokkeren.

Installeer setuptools. Dit is vereist om fail2ban te installeren.

# apt-get install python3-setuptools -y

Download en installeer 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

Kopieer het standaard configuratiebestand jails.conf naar jails.local en open het gekopieerde bestand in een teksteditor.

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

Plak het volgende fragment onderaan het bestand. U kunt de parameters maxretry, findtime en bantime wijzigen.

[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

Maak een nieuw filterconfiguratiebestand om het filterpatroon te definiëren om mislukte inlogpogingen in het codeserverlogboek te vinden.

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

Plak het volgende fragment in het bestand.

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

Start de rsyslog-service opnieuw en schakel de fail2ban-service in en start deze.

# systemctl restart rsyslog.service

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

Dat is het. De installatie is succesvol voltooid.

In dit artikel hebben we u uitgelegd hoe u Code-Server installeert op Ubuntu 20.04


Python gebruiken als opdrachtregelcalculator

Python gebruiken als opdrachtregelcalculator

Hoewel u een grafische rekenmachine op uw computer kunt gebruiken, kan de Python-programmeertaalinterpreter ook dienst doen als bureaurekenmachine. Het is zo'n populaire hardloopgrap in de Python-gemeenschap dat het wordt genoemd in de officiële tutorial. Hier leest u hoe u Python als rekenmachine kunt gebruiken.

De 8 beste Java-blogs voor programmeurs

De 8 beste Java-blogs voor programmeurs

Als programmeur moet je uitdagingen aangaan om te overleven en wonderen te bouwen op het gebied van ontwikkeling of programmeren. Als u dus een geavanceerde programmeertaal wilt leren om uw carrièrevaardigheden te verbeteren, is Java een van de beste vooruitzichten die er zijn.

7 essentiële commandos om aan de slag te gaan met Python voor beginners

7 essentiële commandos om aan de slag te gaan met Python voor beginners

Het leren van een nieuwe programmeertaal zoals Python wordt moeiteloos als je een uitgebreid stappenplan hebt waarin wordt beschreven welke concepten je als beginner moet leren en hoe je verder kunt komen om de volgende mijlpaal te bereiken. Zelfs gevorderde programmeurs zouden hun basis regelmatig moeten opfrissen om een ​​solide basis voor zichzelf op te bouwen.

Responsieve webontwerpprincipes

Responsieve webontwerpprincipes

Tegenwoordig is het gebruikelijk om een ​​website of app te bouwen die de gebruikersinterface aanpast, afhankelijk van de browser of het apparaat. Er zijn twee benaderingen om dit doel te bereiken. De eerste omvat het maken van verschillende versies van uw website of app voor verschillende apparaten. Maar het is inefficiënt en kan leiden tot onvoorspelbare fouten.

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Het aantal cijfers in een getal tellen met C++, Python en JavaScript

Werken met getallen is een integraal onderdeel van programmeren. Elke programmeertaal biedt ondersteuning om getallen op veel verschillende manieren te manipuleren. In dit artikel leert u hoe u het totale aantal cijfers in een geheel getal kunt vinden met behulp van iteratieve, op logs gebaseerde en op tekenreeksen gebaseerde benaderingen.

De 9 beste Docker-alternatieven voor containerbeheer

De 9 beste Docker-alternatieven voor containerbeheer

Containers zijn zeer nuttig voor softwareontwikkeling, implementatie en beheer in een virtuele omgeving. Docker is handig in het containerisatieproces, maar het is niet het enige platform dat er is. Als u op zoek bent naar alternatieven voor Docker, hoeft u niet verder te zoeken. Deze lijst toont enkele veelzijdige en efficiënte Docker-alternatieven die u in uw volgende project kunt gebruiken.

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

SQL versus NoSQL: wat is de beste database voor uw volgende project?

Tweets insluiten in uw WordPress-berichten

Tweets insluiten in uw WordPress-berichten

Het insluiten van services van derden in uw WordPress-berichten is een opwindende manier om de interesse van een bezoeker te wekken. Ingesloten inhoud biedt ook visuele aanwijzingen die het scannen gemakkelijker maken. WordPress heeft het toevoegen van dit soort inhoud eenvoudig gemaakt.

Hoe de map Node Modules te verwijderen met npkill

Hoe de map Node Modules te verwijderen met npkill

Node.js is een JavaScript-runtimeomgeving waarmee u JavaScript buiten webbrowsers kunt uitvoeren, waardoor het een populaire keuze is voor het ontwikkelen van allerlei soorten toepassingen. Een deel van zijn populariteit is te danken aan de overvloed aan NPM-pakketten die er zijn om de ontwikkelaarservaring te vergemakkelijken.

Hoe u uw eerste Solidity-code schrijft en compileert

Hoe u uw eerste Solidity-code schrijft en compileert

Solidity is de programmeertaal die wordt gebruikt door slimme contracten op de Ethereum-blockchain. Het is een statisch getypeerde, objectgeoriënteerde programmeertaal.