Visual Studio Code est devenu l'un des IDE les plus populaires pour le codage. Il intègre la prise en charge de Git et Docker, un débogueur de code, l'auto-complétion de code, la possibilité de travailler avec des fichiers distants et prend en charge divers plugins.
Avec tout ce qui se déplace vers le cloud, avoir accès à l'IDE de votre choix de n'importe où est parfait pour le développement moderne. Cloud IDE permet une collaboration en temps réel entre les développeurs, améliorant ainsi la productivité. coder-server est une application qui vous permet d'exécuter Visual Studio Code à partir d'un serveur distant et de le rendre accessible via n'importe quel navigateur.
Ce didacticiel vous apprendra comment installer Visual Studio Code IDE à l'aide de l'application code-server sur votre serveur Rocky Linux 8. Vous l'exposerez également via un domaine public avec le support SSL.
Prérequis
-
Un serveur exécutant Rocky Linux avec au moins 2 Go de RAM et 2 cœurs de processeur.
-
Un utilisateur non root avec des privilèges sudo.
-
Un domaine enregistré et pointé vers le serveur.
-
Nginx installé sur votre serveur.
-
Assurez-vous que tout est mis à jour.
$ sudo dnf update
Étape 1 - Configurer le pare-feu
La première étape consiste à configurer le pare-feu. Rocky Linux est livré avec le pare-feu Firewalld.
Vérifiez si le pare-feu est en cours d'exécution.
$ sudo firewall-cmd --state
La sortie suivante prouve que le pare-feu est en cours d'exécution.
running
Vérifiez les services/ports actuellement autorisés.
$ sudo firewall-cmd --permanent --list-services
Il devrait afficher la sortie suivante.
dhcpv6-client mdns ssh
Ouvrez le port 8080 pour le serveur de code.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Autoriser les ports HTTP et HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Revérifiez l'état du pare-feu.
$ sudo firewall-cmd --permanent --list-all
Vous devriez voir une sortie similaire.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 8080/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Rechargez le pare-feu pour activer les modifications.
$ sudo systemctl reload firewalld
Étape 2 - Installer le code-server
code-server est livré avec un script d'installation capable de détecter la version de Linux et d'installer le binaire approprié pour votre serveur. Vous pouvez tester le script d'installation pour vérifier s'il fonctionnera ou non sur votre serveur.
Exécutez la commande suivante pour effectuer une simulation de l'installation.
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run Rocky Linux 8.4 (Green Obsidian) Installing v3.12.0 of the amd64 rpm package from GitHub. + mkdir -p ~/.cache/code-server + curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm + mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm + sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm rpm package has been installed. To have systemd start code-server now and restart on boot: sudo systemctl enable --now [email protected]$USER Or, if you don't want/need a background service you can run: code-server
Exécutez la configuration après le test réussi.
$ curl -fsSL https://code-server.dev/install.sh | sh
Le script d'installation peut vous demander votre mot de passe sudo.
Activez le service de serveur de code.
$ sudo systemctl enable [email protected]$USER
Si vous souhaitez mettre à jour votre instance de code-server, répétez le processus d'installation. code-server conservera vos fichiers et paramètres.
Étape 3 - Configurer le code-server
code-server stocke son fichier de configuration dans ~/.config/code-server/config.yaml
. Ouvrez-le pour le modifier.
$ sudo nano ~/.config/code-server/config.yaml
Voici les paramètres par défaut définis lors de l'installation.
bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false
Le fichier de configuration par défaut active le comportement suivant :
- Écouter sur le port IP de bouclage 8080
- Active l'autorisation par mot de passe avec un mot de passe généré aléatoirement
- N'utilise pas TLS
Vous pouvez modifier le mot de passe en modifiant sa valeur dans le fichier.
Si vous souhaitez stocker une version hachée du mot de passe, vous devez d'abord installer npm. Une fois installé, exécutez la commande suivante pour définir le mot de passe haché.
$ echo -n "thisismypassword" | npx argon2-cli -e $argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
Vous obtiendrez la valeur hachée sur votre terminal. Copiez-le et collez-le dans le fichier de configuration.
auth: password hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
Assurez-vous d'envelopper le mot de passe haché avec des guillemets. Si vous souhaitez désactiver la télémétrie, ajoutez la ligne suivante dans le fichier.
disable-telemetry: false
Il existe d'autres options que vous pouvez définir dans le fichier. Pour vérifier toutes les autres options que vous pouvez ajouter, utilisez la commande suivante pour lister tous les drapeaux.
$ code-server --help
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.
Étape 4 - Installer SSL
Pour installer un certificat SSL avec Let's Encrypt, nous devons télécharger l'outil Certbot. Mais d'abord, nous devons installer le dépôt EPEL.
Exécutez les commandes suivantes pour installer Certbot.
$ sudo dnf install epel-release $ sudo dnf install certbot
Générez le certificat SSL.
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [email protected]
La commande ci-dessus téléchargera un certificat sur /etc/letsencrypt/live/code-server.example.com
répertoire sur votre serveur. Assurez-vous de remplacer [email protected]
avec votre adresse e-mail réelle.
Générer un groupe Diffie-Hellman certificat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Créez un répertoire racine Web de défi pour le renouvellement automatique de Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Créez une tâche Cron pour renouveler le SSL. Il s'exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier /etc/cron.daily/certbot-renew
et ouvrez-le pour le modifier.
$ sudo nano /etc/cron.daily/certbot-renew
Collez le code suivant.
#!/bin/sh certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Étape 5 - Installer et configurer Nginx
Créez et ouvrez le /etc/yum.repos.d/nginx.repo
fichier pour créer le référentiel Nginx officiel.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Installez le serveur Nginx.
$ sudo dnf install nginx
Activez le service Nginx.
$ sudo systemctl enable nginx
Créez un fichier de configuration pour code-server dans /etc/nginx/conf.d
répertoire.
$ sudo nano /etc/nginx/conf.d/code-server.conf
Collez-y le code suivant.
server { listen 80; listen [::]:80; server_name code-server.example.com; return 301 https://$host$request_uri; } server { server_name code-server.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/code-server.access.log; error_log /var/log/nginx/code-server.error.log; ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } }
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Validez le fichier de configuration.
$ sudo nginx -t
Si vous obtenez l'erreur suivante, vous devrez modifier le fichier /etc/nginx/nginx.conf
pour ajouter/ajuster la taille de la variable server_names_hash_bucket_size
.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Ouvrez le fichier /etc/nginx/nginx.conf
pour l'édition.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité. Validez à nouveau Nginx.
Démarrez le serveur Nginx.
$ sudo systemctl start nginx
Étape 6 - Utiliser code-server
Lancez le domaine https://code-server.example.com
dans votre navigateur et entrez le mot de passe pour authentifier votre installation de serveur de code. Entrez le mot de passe du fichier de configuration.
code-server demandera les paramètres de VS Code la première fois que vous le lancerez.
Choisissez un jeu de couleurs, parcourez les sections restantes et cliquez sur Marquer comme terminé une fois terminé.
Conclusion
Une instance de Visual Studio Code est maintenant installée sur votre serveur Rocky Linux. Il y a certaines mises en garde à ce sujet par rapport au code VS officiel. Les extensions disponibles ne sont pas les extensions officielles mais proposées à partir du référentiel non officiel de code-server. Vous pouvez consulter leur documentation officielle si vous souhaitez installer l'extension officielle. Cela demandera des efforts. Si vous avez des questions, postez-les dans les commentaires ci-dessous.