148 lines
5.5 KiB
Markdown
148 lines
5.5 KiB
Markdown
---
|
|
title: Coder
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, development, ide, cloud, remote-dev]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Development, https://github.com/coder/coder]
|
|
---
|
|
|
|
# 💻 Coder
|
|
|
|
> **IDE cloud auto-hébergé pour équipes de développement** : provisionne des environnements de dev Linux éphémères, accessibles depuis un navigateur ou VS Code/JetBrains distants.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [coder.com](https://coder.com) |
|
|
| **GitHub** | [coder/coder](https://github.com/coder/coder) |
|
|
| **License** | AGPL-3.0 (Coder CE) |
|
|
| **Langage** | Go (backend) + TypeScript (frontend) |
|
|
| **Étoiles GitHub** | 13 382 ⭐ |
|
|
| **Catégorie** | [[cat-development\|Development]] |
|
|
| **Note** | ⚠️ **Coder ≠ code-server** : Coder est une **plateforme d'orchestration d'environnements** (workspaces, SSH, intégration Terraform/Pulumi), alors que code-server n'est qu'une instance unique de VS Code web. |
|
|
|
|
## 📝 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)
|
|
|
|
```yaml
|
|
# 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)
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
curl -L https://coder.com/install.sh | sh
|
|
coder server
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **Premier admin** : créer l'utilisateur admin via `coder users create`
|
|
2. **Templates de workspaces** : un fichier `*.tf` Terraform ou `Pulumi.*` décrit l'infra cible (Docker, EC2, GKE…)
|
|
3. **Provisioners** : choisir entre `terraform` (défaut, multi-cloud) ou `pulumi`
|
|
4. **Intégration IDE** : extension **Coder Remote** dans VS Code / JetBrains
|
|
5. **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`
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Documentation officielle](https://coder.com/docs)
|
|
- [GitHub coder/coder](https://github.com/coder/coder)
|
|
- [Templates de workspaces (registry)](https://github.com/coder/registry)
|
|
- [Blog Coder — cas d'usage](https://coder.com/blog)
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-development]] — Catégorie Development
|
|
- [[app-code-server]] — Alternative plus simple (mono-user)
|
|
- [[app-gitpod]] — Concurrent principal
|
|
- [[app-traefik]] — Reverse proxy
|
|
- [[securisation-home-lab]] — Bonnes pratiques sécurité
|
|
- [[recettes-docker-compose]] — Templates Docker
|