Ir al contenido

DevPod - Entornos de desarrollo de código abierto como código

DevPod - Entornos de desarrollo de código abierto como código

DevPod (de Loft) es una herramienta de cliente único, de código abierto que crea entornos de desarrollador reproducibles desde un devcontainer.json estándar en cualquier backend — tu Docker local, una máquina SSH remota, un clúster de Kubernetes o una VM en la nube. Piensa en “Codespaces autohospedado, sin opiniones”: funciona con cualquier IDE (VS Code, JetBrains o navegador), controlas dónde se ejecuta el entorno a través de proveedores enchufa bles, y no hay componente de servidor que operar.

Instalación

MétodoCómo
CLIDescarga desde GitHub Releases (Linux/macOS/Windows)
Aplicación de escritorioGUI disponible de DevPod Desktop
RequerimientoUn proveedor de backend (Docker, host SSH, K8s, nube)
Verificardevpod version

Proveedores (dónde se ejecutan los entornos)

ComandoDescripción
devpod provider add dockerUsa Docker local
devpod provider add ssh --option HOST=user@hostUsa una máquina remota
devpod provider add kubernetesEjecuta en un clúster de K8s
devpod provider add aws (gcloud, azure)Proveedores de VM en la nube
devpod provider listLista proveedores configurados
devpod provider use dockerEstablece el proveedor predeterminado

Creación de espacios de trabajo

ComandoDescripción
devpod up .Inicia un env desde el devcontainer del repositorio actual
devpod up github.com/org/repoDesde una URL de repositorio de Git
devpod up . --ide vscodeAbre en un IDE específico
devpod up . --provider kubernetesElige un backend
devpod up . --recreateReconstruye el espacio de trabajo

Gestión de espacios de trabajo

ComandoDescripción
devpod listLista espacios de trabajo
devpod stop <name>Detiene un espacio de trabajo
devpod delete <name>Elimina un espacio de trabajo
devpod ssh <name>SSH en un espacio de trabajo
devpod status <name>Muestra el estado del espacio de trabajo

devcontainer.json (la especificación)

DevPod consume la especificación de Dev Container abierta, por lo que el mismo archivo funciona en Codespaces, VS Code y 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"] }
  }
}
CampoPropósito
image / dockerfileEntorno base
featuresAdd-ons componibles (lenguajes, herramientas)
postCreateCommandConfiguración ejecutada después de la creación
forwardPortsPuertos a exponer
customizationsConfiguración/extensiones específicas del IDE

Integración de IDE

IDECómo
VS Code--ide vscode (escritorio o navegador)
JetBrains--ide goland/pycharm/...
Navegador (openvscode)--ide openvscode
SSH/terminaldevpod ssh <name>

Flujos de trabajo comunes

# Env dev de Docker local desde el devcontainer de un repositorio
devpod provider add docker
devpod up github.com/org/project --ide vscode

# Descarga compilaciones pesadas a una máquina remota potente
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh

# Env efímero en la nube en Kubernetes, eliminado cuando finaliza
devpod up . --provider kubernetes
devpod delete my-project

DevPod vs alternativas

AspectoDevPodGitHub CodespacesDevboxGitpod
HostingCualquier backend (tu elección)Nube de GitHubLocal (Nix)Nube/autohospedado
Especificacióndevcontainer.jsondevcontainer.jsondevbox.jsonConfig Gitpod
ServidorNinguno (cliente único)GestionadoNingunoServidor
Mejor paraDev portátil, cualquier nubeCero configuración GitHubEnvs reproducibles localEspacios de trabajo desencadenados por Git

DevPod usa la misma especificación de devcontainer que Codespaces; para envs basadas en Nix locales ver Devbox.

Recursos