Aller au contenu

DevPod - Environnements de développement open-source en tant que code

DevPod - Environnements de développement open-source en tant que code

DevPod (par Loft) est un outil client-only open-source qui crée des environnements de développement reproductibles à partir d’un standard devcontainer.json sur tout backend — votre Docker local, une machine SSH distante, un cluster Kubernetes ou une VM cloud. Pensez « self-hosted, sans opinion GitHub Codespaces » : cela fonctionne avec tout IDE (VS Code, JetBrains ou navigateur), vous contrôlez où l’environnement s’exécute via des providers enfichables, et il n’y a pas de composant serveur à opérer.

Installation

MéthodeComment
CLITélécharger depuis GitHub Releases (Linux/macOS/Windows)
Application bureauInterface GUI DevPod Desktop disponible
ExigenceUn backend provider (Docker, hôte SSH, K8s, cloud)
Vérifierdevpod version

Providers (Où les environnements s’exécutent)

CommandeDescription
devpod provider add dockerUtiliser Docker local
devpod provider add ssh --option HOST=user@hostUtiliser une machine distante
devpod provider add kubernetesExécuter dans un cluster K8s
devpod provider add aws (gcloud, azure)Providers cloud VM
devpod provider listLister les providers configurés
devpod provider use dockerDéfinir le provider par défaut

Créer des espaces de travail

CommandeDescription
devpod up .Démarrer un env depuis le devcontainer du dépôt actuel
devpod up github.com/org/repoD’une URL de dépôt Git
devpod up . --ide vscodeOuvrir dans un IDE spécifique
devpod up . --provider kubernetesChoisir un backend
devpod up . --recreateReconstruire l’espace de travail

Gestion des espaces de travail

CommandeDescription
devpod listLister les espaces de travail
devpod stop <name>Arrêter un espace de travail
devpod delete <name>Supprimer un espace de travail
devpod ssh <name>SSH dans un espace de travail
devpod status <name>Afficher l’état de l’espace de travail

devcontainer.json (la spec)

DevPod consomme la spec Dev Container ouverte, donc le même fichier fonctionne dans Codespaces, VS Code et DevPod.

{
  "name": "my-project",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/devcontainers/features/node:1": { "version": "20" }
  },
  "postCreateCommand": "npm install",
  "customizations": {
    "vscode": { "extensions": ["dbaeumer.vscode-eslint"] }
  }
}
ChampObjectif
image / dockerfileEnvironnement de base
featuresModules d’extension composables (langages, outils)
postCreateCommandSetup exécuté après la création
forwardPortsPorts à exposer
customizationsParamètres/extensions spécifiques à l’IDE

Intégration IDE

IDEComment
VS Code--ide vscode (bureau ou navigateur)
JetBrains--ide goland/pycharm/...
Navigateur (openvscode)--ide openvscode
SSH/terminaldevpod ssh <name>

Flux de travail courants

# Local Docker dev env from a repo's devcontainer
devpod provider add docker
devpod up github.com/org/project --ide vscode

# Offload heavy builds to a beefy remote machine
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh

# Ephemeral cloud env in Kubernetes, deleted when done
devpod up . --provider kubernetes
devpod delete my-project

DevPod vs alternatives

AspectDevPodGitHub CodespacesDevboxGitpod
HébergementTout backend (votre choix)Cloud GitHubLocal (Nix)Cloud/auto-hébergé
Specdevcontainer.jsondevcontainer.jsondevbox.jsonConfig Gitpod
ServeurAucun (client-only)GéréeAucunServeur
Meilleur pourDev portable, tout-cloudZéro-config GitHubEnvs reproductibles locauxEspaces de travail git-triggered

DevPod utilise la même spec devcontainer que Codespaces ; pour les envs locales basées Nix voir Devbox.

Ressources