❯ apps · Running

VS Code dans le navigateur avec code-server VS Code in the Browser with code-server

Un environnement VS Code complet accessible depuis n'importe quel navigateur — déploiement de code-server sur Kubernetes avec workspace persistant et accès sécurisé via Cloudflare. Running a full VS Code development environment accessible from any browser — deploying code-server on Kubernetes with persistent workspace and secure Cloudflare access.

· 7 min de lecture 7 min read ·
k3s-clusterdevtoolsidek8s
🇬🇧 Read this article in English

Un IDE cloud-native pour le homelab

code-server est un portage de VS Code qui s’exécute côté serveur et s’expose via une interface web. L’objectif dans ce homelab : avoir un environnement de développement accessible depuis n’importe quel appareil — tablet, machine de travail, laptop en déplacement — sans installation locale.

Couplé au Cloudflare Tunnel, code-server est accessible sur code.olig-homelab-2025.win depuis n’importe où, avec le workspace persistant sur un volume Longhorn.

Particularités du déploiement

Authentification par mot de passe

code-server expose une interface web protégée par mot de passe. Ce mot de passe est injecté via une variable d’environnement issue d’un SealedSecret :

env:
- name: PASSWORD
  valueFrom:
    secretKeyRef:
      name: code-server-credentials
      key: password

WebSocket et Cloudflare

VS Code utilise des WebSockets pour la synchronisation en temps réel de l’éditeur. La configuration Cloudflare Tunnel doit avoir des timeouts WebSocket généreux pour éviter les déconnexions intempestives.

Workspace persistant

Le workspace (fichiers, configuration VS Code, extensions) est stocké dans un PVC critical :

volumeMounts:
- name: workspace
  mountPath: /home/coder

Les extensions VS Code installées persistent entre les redémarrages du pod.

Leçons apprises

strategy: Recreate est posée dès le départ, en précaution proactive plutôt qu’en leçon apprise après coup : deux instances de code-server sur le même workspace PVC causent des conflits de fichiers. Recreate garantit qu’une seule instance accède au workspace à la fois. Ce même pattern PVC unique + Recreate a ensuite été repris pour d’autres apps à état persistant, comme Silex.

Ressources : code-server + les extensions consomment facilement 512 Mi - 1 Gi de RAM. Prévoir un limit de 2 Gi pour les sessions de travail intensives avec de nombreuses extensions actives.

Proxy de terminal : le terminal intégré de code-server fonctionne directement dans le pod — ce n’est pas le nœud Kubernetes. Pour interagir avec le cluster, installer kubectl et kubeseal dans l’image code-server, et monter le kubeconfig via un secret.

k3s-clusterdevtoolsidek8s