Code-Server facile à installer sur Ubuntu 20.04

Code-Server facile à installer sur Ubuntu 20.04

Dans cet article, nous vous guiderons pour installer Code-Server sur Ubuntu 20.04.

Code-server est une application serveur open source qui sert VS Code sur n'importe quelle machine n'importe où et y accède dans le navigateur. Il permet de tirer parti de puissants serveurs cloud pour accélérer les compilations et les tests, et pour économiser la batterie lors de vos déplacements.

Conditions préalables

  • Un VPS installé Ubuntu 20.04 avec min. recommandé : 4 Go de RAM, 2 vCPU.
  • Un nom de domaine valide pointant vers le VPS.
  • Un accès utilisateur root ou un utilisateur normal avec des privilèges administratifs.

Installer Code-Server sur Ubuntu 20.04

1. Mettre à jour le serveur

Gardez le serveur à jour.

# apt update -y

# apt upgrade -y

2. Installer le serveur de code

Téléchargez code-server à partir du référentiel officiel à l'aide de la commande suivante :

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

Extrayez le fichier tar et renommez-le avec le serveur de code à l' aide de la commande suivante :

# 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

Rendez le binaire du serveur de code exécutable.

# cd code-server

Exécutez code-server.

./code-server --port 8000

Ouvrez le navigateur de votre ordinateur et accédez à http://YOUR_IP_ADDRESS:8000. Un mot de passe vous sera demandé. Utilisez le mot de passe affiché dans le terminal SSH. L'interface Visual Studio Code s'ouvrira. Pour arrêter le serveur, appuyez sur  CTRL + C  dans le terminal SSH.

3. Créer un service de démarrage du système

Nous pouvons créer un service à l'aide du gestionnaire de services systemd de Linux . Suivez ces étapes:

Créez un nouveau fichier par le nom code-server.service à l' aide de la commande suivante :

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

Copiez et collez le contenu suivant et remplacez-le par le mot de passe que vous souhaitez définir. Ce sera le mot de passe que vous utiliserez pour vous connecter au serveur de code.

[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

Enregistrez et fermez le fichier.

Maintenant, démarrez et activez le code-server.service à l' aide des commandes suivantes :

# systemctl daemon-reload

# systemctl start code-server

# systemctl enable code-server

Ouvrez le navigateur de votre ordinateur et accédez à http://YOUR_IP_ADDRESS:8000. Un mot de passe vous sera demandé. Utilisez le mot de passe que vous avez mentionné dans le fichier code-server.service .

4. Installer et configurer Nginx

Afin d'accéder à l'installation sur un nom de domaine et d'ajouter un certificat SSL, il est recommandé de mettre en place un reverse proxy. À cette fin de démonstration, nous utilisons le serveur Web Nginx comme proxy inverse.

Pour installer Nginx, utilisez la commande suivante :

# apt-get install nginx -y

Désactivez le fichier de configuration du site Nginx par défaut.

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

Créez un nouveau fichier de configuration de site Nginx pour code-server.

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

Collez l'extrait suivant dans le fichier, en remplaçant example.com par votre propre nom de domaine.

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

Activez la configuration et redémarrez le serveur Web Nginx.

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

Testez le fichier de configuration Nginx.

# nginx -t

Si aucune erreur ne se produit, redémarrez le service nginx .

# systemctl restart nginx

Si vous utilisez UFW comme pare-feu, autorisez les connexions SSH et Nginx à travers le pare-feu et activez le pare-feu. Cela garantira que l'installation du serveur de code n'est accessible que via le proxy inverse Nginx.

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

Accédez à votre nom de domaine pour tester l'installation.

5. Installez Let's Encrypt SSL

Gardez la connexion sécurisée entre le serveur et l'utilisateur final, il est fortement recommandé d'installer un certificat SSL. Let's Encrypt est un certificat SSL gratuit qui a une validité de 90 jours et qui sera renouvelé tous les 90 jours. Nous utilisons certbot pour installer le certificat SSL.

Téléchargez et installez Certbot.

# apt-get install python3-certbot-nginx

Exécutez la commande suivante pour lancer le programme d'installation en ligne de commande de Certbot, en remplaçant example.com par votre propre nom de domaine.

# certbot --nginx -d example.com

Passez par le programme d'installation interactif. Lorsqu'on lui a demandé s'il fallait ou non rediriger le trafic HTTP vers HTTPS, choisissez de rediriger.

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. Installez fail2ban (recommandé)

Fail2ban est une application qui analyse les journaux pour détecter et atténuer les attaques automatisées sur un serveur. Lorsqu'un nombre prédéfini de tentatives de connexion infructueuses est détecté, fail2ban modifiera les iptables du serveur pour bloquer l'attaquant pendant une durée prédéfinie.

Installez setuptools. Ceci est nécessaire pour installer fail2ban.

# apt-get install python3-setuptools -y

Téléchargez et installez 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

Copiez le fichier de configuration par défaut jails.conf dans jails.local et ouvrez le fichier copié dans un éditeur de texte.

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

Collez l'extrait suivant au bas du fichier. Vous pouvez modifier les paramètres maxretry, findtime et 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

Créez un nouveau fichier de configuration de filtre pour définir le modèle de filtre afin de rechercher les tentatives de connexion infructueuses dans le journal du serveur de code.

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

Collez l'extrait suivant dans le fichier.

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

Redémarrez le service rsyslog et activez et démarrez le service fail2ban.

# systemctl restart rsyslog.service

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

C'est ça. L'installation s'est terminée avec succès.

Dans cet article, nous vous avons expliqué comment installer Code-Server sur Ubuntu 20.04


Comment utiliser Python comme calculatrice de ligne de commande

Comment utiliser Python comme calculatrice de ligne de commande

Bien que vous puissiez utiliser une calculatrice graphique sur votre ordinateur, l'interpréteur du langage de programmation Python peut également servir de calculatrice de bureau. C'est une blague si populaire dans la communauté Python qu'elle est mentionnée dans le didacticiel officiel. Voici comment vous pouvez utiliser Python comme calculatrice.

Les 8 meilleurs blogs Java pour les programmeurs

Les 8 meilleurs blogs Java pour les programmeurs

En tant que programmeur, vous devez relever des défis pour survivre et créer des merveilles dans le domaine du développement ou de la programmation. Par conséquent, si vous cherchez à apprendre un langage de programmation avancé pour améliorer vos compétences professionnelles, Java est l'une des meilleures perspectives.

7 commandes vitales pour démarrer avec Python pour les débutants

7 commandes vitales pour démarrer avec Python pour les débutants

Apprendre un nouveau langage de programmation comme Python devient facile si vous disposez d'une feuille de route complète détaillant les concepts à apprendre en tant que débutant et comment progresser davantage pour atteindre le prochain jalon. Même les programmeurs intermédiaires devraient fréquemment réviser leurs bases pour se construire une base solide.

Principes de conception de sites Web réactifs

Principes de conception de sites Web réactifs

De nos jours, il est courant de créer un site Web ou une application qui ajuste son interface utilisateur en fonction du navigateur ou de l'appareil. Il existe deux approches pour atteindre cet objectif. La première consiste à créer différentes versions de votre site Web ou de votre application pour différents appareils. Mais c'est inefficace et peut conduire à des erreurs imprévisibles.

Comment compter le nombre de chiffres dans un nombre à laide de C++, Python et JavaScript

Comment compter le nombre de chiffres dans un nombre à laide de C++, Python et JavaScript

Travailler avec des nombres fait partie intégrante de la programmation. Chaque langage de programmation prend en charge la manipulation des nombres de différentes manières. Dans cet article, vous apprendrez à trouver le nombre total de chiffres dans un entier à l'aide d'approches itératives, basées sur les journaux et basées sur les chaînes.

Les 9 meilleures alternatives Docker pour la gestion des conteneurs

Les 9 meilleures alternatives Docker pour la gestion des conteneurs

Les conteneurs sont très utiles pour le développement, le déploiement et la gestion de logiciels dans un environnement virtuel. Docker est utile dans le processus de conteneurisation, mais ce n'est pas la seule plate-forme disponible. Si vous recherchez des alternatives à Docker, ne cherchez pas plus loin. Cette liste présente des alternatives Docker riches en fonctionnalités et efficaces à utiliser dans votre prochain projet.

SQL vs NoSQL : quelle est la meilleure base de données pour votre prochain projet ?

SQL vs NoSQL : quelle est la meilleure base de données pour votre prochain projet ?

SQL vs NoSQL : quelle est la meilleure base de données pour votre prochain projet ?

Comment intégrer des tweets dans vos publications WordPress

Comment intégrer des tweets dans vos publications WordPress

L'intégration de services tiers dans vos publications WordPress est un moyen passionnant de captiver l'intérêt d'un visiteur. Le contenu intégré fournit également des repères visuels qui facilitent la numérisation. WordPress a facilité l'ajout de ce type de contenu.

Comment supprimer le dossier des modules de nœud avec npkill

Comment supprimer le dossier des modules de nœud avec npkill

Node.js est un environnement d'exécution JavaScript qui vous permet d'exécuter JavaScript en dehors des navigateurs Web, ce qui en fait un choix populaire pour développer toutes sortes d'applications. Une partie de sa popularité est due à la pléthore de packages NPM disponibles pour faciliter l'expérience des développeurs.

Comment écrire et compiler votre premier code de solidité

Comment écrire et compiler votre premier code de solidité

Solidity est le langage de programmation utilisé par les contrats intelligents sur la blockchain Ethereum. C'est un langage de programmation orienté objet de type statique.