Description
Coder est une plateforme open source de Cloud Development Environments (CDE). Au lieu de développer sur la machine locale, chaque développeur dispose d'un workspace Linux distant (Kubernetes, Docker, VM, ou cloud) avec VS Code Server, JetBrains Gateway ou un terminal SSH.
Cas d'usage :
- Standardiser les environnements de dev au sein d'une équipe (fini le « ça marche sur ma machine »)
- Onboarding rapide : un nouveau dev est productif en quelques minutes
- CI/CD dev : prévisualisation d'environnement par branche (PR Preview)
- Héberger des workspaces éphémères pour ne pas exposer le code sur les laptops
- Compatible avec VS Code, JetBrains (IntelliJ, GoLand, PyCharm…), SSH
Architecture typique :
- Serveur Coder : API centrale, dashboard web, gestion des workspaces
- Workspaces : conteneurs/machines où s'exécute le code
- Provisioners : intégration Terraform/Pulumi pour décrire l'infra des workspaces
- Auth : OAuth, OIDC, GitHub, GitLab, etc.
Différence avec un simple code-server : Coder ajoute la gestion multi-tenant, l'isolation par workspace, les templates reproductibles (Infrastructure-as-Code), et le partage de configuration entre développeurs.
Installation
Via Docker Compose (auto-hébergé simple)
# docker-compose.yml
version: '3.8'
services:
coder:
image: ghcr.io/coder/coder:latest
container_name: coder
restart: unless-stopped
ports:
- "7080:7080"
environment:
- CODER_HTTP_ADDRESS=0.0.0.0:7080
- CODER_ACCESS_URL=https://coder.example.com
- CODER_OIDC_ISSUER_URL=https://authentik.example.com/application/o/coder
- CODER_OIDC_CLIENT_ID=*** - CODER_OIDC_CLIENT_SECRET=*** - CODER_DISABLE_PASSWORD_AUTH=true
volumes:
- coder-data:/var/lib/coder
labels:
- "traefik.enable=true"
- "traefik.http.routers.coder.rule=Host(`coder.example.com`)"
- "traefik.http.routers.coder.entrypoints=websecure"
- "traefik.http.routers.coder.tls.certresolver=letsencrypt"
- "traefik.http.services.coder.loadbalancer.server.port=7080"
networks:
- proxy
volumes:
coder-data:
networks:
proxy:
external: true
Production : Helm chart (Kubernetes)
# Ajouter le repo Helm helm repo add coder https://helm.coder.com helm repo update # Installer helm install coder coder/coder \ --namespace coder --create-namespace \ --set coder.accessURL=https://coder.example.com
Installation manuelle (binaire)
curl -L https://coder.com/install.sh | sh coder server
Configuration
- Premier admin : créer l'utilisateur admin via
coder users create - Templates de workspaces : un fichier
*.tfTerraform ouPulumi.*décrit l'infra cible (Docker, EC2, GKE…) - Provisioners : choisir entre
terraform(défaut, multi-cloud) oupulumi - Intégration IDE : extension Coder Remote dans VS Code / JetBrains
- Auth externe : OIDC (Authentik, Keycloak) recommandé plutôt que mots de passe locaux
Alternatives
- [[app-code-server]] — VS Code web mono-utilisateur (plus simple, sans orchestration)
- [[app-gitpod]] (cloud/Self-Hosted) — Concurrent direct, mais l'édition self-hosted est en train d'être dépréciée
- [[app-openhands]] — Agents IA, autre approche dev cloud
- [[app-gitea]] / [[app-forgejo]] — UI web code, mais sans IDE complet
- Devpod (freeopensourcelist) — Concurrent open source basé sur Docker
- GitHub Codespaces — L'équivalent managé de Microsoft
Sécurité
- HTTPS obligatoire (reverse proxy [[traefik]] recommandé)
- OIDC recommandé pour l'authentification
- Workspaces isolés : par utilisateur, quotas CPU/RAM/disque
- Code jamais sur le poste client : tout reste sur le serveur
- Logs d'audit : qui a fait quoi, sur quel workspace
- RBAC :
owner,user,auditor,template-admin
