Initial vault setup
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user