Files
wiki/Catalogue-Self-Hosted/apps/app-code-server.md
T
2026-06-09 18:40:21 +02:00

5.5 KiB


title: code-server created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, ide, code-editor, web-ide] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/coder/code-server]

💻 code-server

VS Code dans le navigateur — exécutez l'éditeur de Microsoft sur un serveur distant et accédez-y depuis n'importe quel poste via une URL.

📋 Informations Générales

Attribut Valeur
Nom code-server
Slug code-server
Description VS Code exécuté à distance, accessible via le navigateur (web IDE)
Site officiel https://coder.com
Repository https://github.com/coder/code-server
Stars 77 848
Licence MIT
Langage principal TypeScript
Catégorie Development
Tags [catalogue, development, ide, code-editor, web-ide]

📝 Description

code-server est un projet open source (MIT) maintenu par la société Coder qui permet d'exécuter VS Code sur un serveur distant et d'y accéder via un navigateur web. L'UX est strictement identique à VS Code desktop : mêmes raccourcis, mêmes extensions Marketplace (à condition d'activer le téléchargement), même support du terminal intégré et du debug. La différence majeure est qu'aucun code n'est stocké sur la machine cliente : tout vit sur le serveur.

C'est l'outil idéal pour transformer un serveur Linux headless (VPS, NAS, Raspberry Pi) en poste de développement à distance : on code depuis un Chromebook, une tablette, ou un PC léger. Coder (la société) édite également une version enterprise (Coder OSSCoder Platform) qui ajoute le multi-workspace, le partage via lien, la gestion RBAC et un provisionnement Terraform/Pulumi — mais elle est payante et distincte du binaire code-server open source.

Cas d'usage : coder depuis une machine peu puissante (Chromebook, iPad), uniformiser l'environnement de dev d'une équipe (même OS, mêmes extensions), préserver le code sur un serveur sauvegardé plutôt que sur des laptops volatils.

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: "3.8"
services:
  code-server:
    image: linuxserver/code-server:latest
    container_name: code-server
    ports:
      - "8443:8443"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - HASHED_PASSWORD=  # générer avec echo "mypass" | npx argon2-cli -e
    volumes:
      - ./config:/config
      - ./projects:/projects  # code stocké ici
    restart: unless-stopped

Installation manuelle

# Installation en une ligne (Linux x86_64)
curl -fsSL https://code-server.dev/install.sh | sh

# Démarrage du service systemd
sudo systemctl enable --now code-server@$USER

# Accès par défaut : http://localhost:8080
# Le mot de passe s'affiche dans les logs au premier lancement

Configuration via ~/.config/code-server/config.yaml : bind-addr, auth, cert, cert-key, disable-telemetry.

⚙️ Configuration

  • HTTPS obligatoire en production : soit via reverse-proxy (Traefik, Caddy, Nginx), soit en activant cert et cert-key directement (Let's Encrypt + DNS challenge).
  • Mot de passe : HASHED_PASSWORD (Argon2id) ou PASSWORD en clair — toujours via variable d'environnement, jamais dans le compose.
  • Extensions : EXTENSIONS_GALLERY permet de pointer vers un marketplace interne (open-vsx.org si l'on veut éviter la télémétrie Microsoft).
  • disable-telemetry : recommandé, désactive la remontée d'usage.
  • Proxy : derrière Traefik, ajouter X-Forwarded-Proto: https pour que les WebSockets du terminal fonctionnent.

🔗 Alternatives

  • Coder (Coder OSS / Platform) — La version enterprise, multi-workspace, avec provisioning Terraform — l'éditeur du projet code-server.
  • OpenVSCode Server — Fork de code-server par Gitpod, plus orienté développement cloud.
  • Eclipse Theia — IDE cloud compatible VS Code mais plus « framework » à customiser.
  • Gitpod / GitHub Codespaces — Services cloud managés, payants, pas de self-host simple.

🔒 Sécurité

  • Ne JAMAIS exposer code-server sans HTTPS ni sans authentification : un accès libre donne un terminal root sur le serveur.
  • Sudo dans le container : l'image linuxserver/code-server ne contient pas sudo, mais l'utilisateur par défaut peut exécuter n'importe quelle commande — limiter les capabilities Docker et éviter --privileged.
  • Persistance des fichiers : si le volume ./projects n'est pas sauvegardé, le code disparaît avec le container.
  • Network : en plus de l'auth, placer un reverse-proxy avec rate-limiting et fail2ban (voir securisation-home-lab).
  • Désactiver la télémétrie (DISABLE_TELEMETRY=1) et settings.telemetry.telemetryLevel: "off" dans VS Code.

📚 Ressources

🔗 Pages Liées