Skip to content

code-server — Installation, configuration et dépannage (résumé)

But

  • Faire tourner code-server sur ta machine Windows via WSL (Ubuntu) et y accéder depuis le LAN (tablette/téléphone).

Status actuel

  • code-server installé et accessible depuis le LAN via http://192.168.2.7:8080.
  • Scripts ajoutés dans le dépôt: see scripts/ (install, firewall, portproxy).

Fichiers créés

  • scripts/setup-code-server-wsl.sh : installe code-server dans WSL, écrit ~/.config/code-server/config.yaml et démarre le service.
  • scripts/setup-windows-firewall-and-ssh.ps1 : crée règle pare-feu pour Windows (port 8080) et option d'installation OpenSSH.
  • scripts/setup-portproxy-wsl.ps1 : script pour créer automatiquement le portproxy Windows→WSL (netsh v4tov4) et ajouter règle pare-feu.
  • docs/code-server-quick-note.txt : note ultra-courte (rappel rapide).

Résumé des étapes réalisées

  1. Installer WSL / Ubuntu (si nécessaire):
  2. wsl --install -d Ubuntu (PowerShell admin)
  3. Installer code-server dans WSL (exécuté via scripts/setup-code-server-wsl.sh ou manuellement):
  4. curl -fsSL https://code-server.dev/install.sh | sh
  5. Config minimale écrite dans ~/.config/code-server/config.yaml :
    bind-addr: 0.0.0.0:8080
    auth: password
    password: "<TonMotDePasse>"
    cert: false
    
  6. Important : pour les mots de passe contenant des caractères spéciaux (ex: !), encadre la valeur avec des quotes pour que YAML l'accepte.
  7. Démarrer code-server en tant que service utilisateur (systemd) ou lancer manuellement:
  8. systemctl --user enable --now code-server (si systemd dans WSL).
  9. Ou code-server --bind-addr 0.0.0.0:8080 & pour exécution manuelle.
  10. Redirection du port WSL → Windows (WSL2 spécifique)
  11. WSL2 a une IP interne (ex: 172.27.211.140), inaccessible directement depuis les autres hôtes du LAN.
  12. Nous avons créé un portproxy Windows qui écoute sur 0.0.0.0:8080 et redirige vers l'IP WSL:
    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8080 connectaddress=<WSL_IP> connectport=8080
    
  13. Le script scripts/setup-portproxy-wsl.ps1 automatise la récupération de l'IP WSL et la (re)création du proxy.
  14. Pare-feu Windows
  15. Ajouter règle d'autorisation pour le port 8080 (profil Privé ou Any selon ton besoin):
    New-NetFirewallRule -DisplayName "code-server (allow 8080)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080 -Profile Private
    
  16. Nous avons ajouté scripts/setup-windows-firewall-and-ssh.ps1 pour créer cette règle et proposer l'installation d'OpenSSH.

Dépannage et diagnostics effectués

  • Vérifications réalisées depuis WSL:
  • ps aux | grep code-server — confirmer process actif.
  • curl -I http://127.0.0.1:8080 — test local HTTP.
  • journalctl --user -u code-server -n 200 --no-pager — consultation des logs.
  • Problèmes rencontrés et résolus :
  • YAML mal formé dans ~/.config/code-server/config.yaml (absence d'espace et caractères spéciaux non quotés) — causait error can not read a block mapping entry et plantage du service.
  • Solution : corriger la ligne password: pour inclure un espace et, si nécessaire, entourer la valeur entre quotes (ex: password: 'MonMotDePasse!').
  • Le service s'est arrêté car systemd a détecté des redémarrages trop fréquents — corrigé en réparant le YAML puis redémarrant.

Tests finaux

  • Depuis Windows local : curl http://localhost:8080 → renvoie HTTP 200.
  • Depuis autre appareil LAN : http://192.168.2.7:8080 (adresse Windows host) — accessible après création du portproxy et règle pare-feu.

Notes importantes

  • L'IP WSL change parfois au redémarrage : il faut re-exécuter le setup-portproxy-wsl.ps1 ou automatiser la recréation au démarrage (tâche planifiée). Le script contient un commentaire à ce sujet.
  • Garder bind-addr: 0.0.0.0:8080 pour permettre au portproxy Windows de rediriger. Ne pas exposer ce port sur le WAN sans tunnel sécurisé.
  • Pour accès WAN sécurisé, utiliser Cloudflare Tunnel ou ngrok (non configuré ici — tu as préféré attendre).

Commandes utiles (rappel rapide)

  • Lancer WSL Ubuntu : wsl -d Ubuntu
  • Voir distros : wsl -l -v
  • Récupérer IP WSL : wsl -d Ubuntu hostname -I
  • Supprimer portproxy : netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=8080
  • Voir portproxy : netsh interface portproxy show all
  • Activer IP Helper (si erreur netsh) :
    Start-Service iphlpsvc; Set-Service -Name iphlpsvc -StartupType Automatic
    

Prochaines actions possibles

  • Automatiser la création du portproxy au démarrage Windows (tâche planifiée). (Je peux l'ajouter si tu veux.)
  • Ajouter Cloudflare Tunnel si tu veux accès WAN sécurisé plus tard.

Références locales

  • Scripts : scripts/setup-code-server-wsl.sh, scripts/setup-windows-firewall-and-ssh.ps1, scripts/setup-portproxy-wsl.ps1
  • Note rapide : docs/code-server-quick-note.txt

Fin du document.