Pular para o conteúdo

DevPod - Cheatsheet de Ambientes de Desenvolvimento de Código Aberto

DevPod - Cheatsheet de Ambientes de Desenvolvimento de Código Aberto

DevPod (por Loft) é uma ferramenta de código aberto, somente para cliente que cria ambientes de desenvolvedor reproduzíveis a partir de um padrão devcontainer.json em qualquer backend — seu Docker local, uma máquina SSH remota, um cluster Kubernetes ou uma VM em nuvem. Pense em “Codespaces auto-hospedado e não opinado”: funciona com qualquer IDE (VS Code, JetBrains ou navegador), você controla onde o ambiente executa via providers conectáveis, e não há componente de servidor para operar.

Instalação

MétodoComo
CLIBaixe de GitHub Releases (Linux/macOS/Windows)
Desktop appGUI de Desktop DevPod disponível
RequirementUm backend de provider (Docker, host SSH, K8s, nuvem)
Verifydevpod version

Providers (Onde os Ambientes Executam)

ComandoDescrição
devpod provider add dockerUse Docker local
devpod provider add ssh --option HOST=user@hostUse uma máquina remota
devpod provider add kubernetesExecute em um cluster K8s
devpod provider add aws (gcloud, azure)Providers de VM em nuvem
devpod provider listListe providers configurados
devpod provider use dockerDefina o provider padrão

Criando Workspaces

ComandoDescrição
devpod up .Inicie um env do devcontainer do repo atual
devpod up github.com/org/repoDe uma URL de repo Git
devpod up . --ide vscodeAbra em um IDE específico
devpod up . --provider kubernetesEscolha um backend
devpod up . --recreateReconstrua o workspace

Gerenciando Workspaces

ComandoDescrição
devpod listListe workspaces
devpod stop <name>Pare um workspace
devpod delete <name>Delete um workspace
devpod ssh <name>SSH em um workspace
devpod status <name>Mostre o status do workspace

devcontainer.json (a Especificação)

DevPod consome a especificação Dev Container aberta, então o mesmo arquivo funciona em Codespaces, VS Code e 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 / dockerfileAmbiente base
featuresAdd-ons compostos (idiomas, ferramentas)
postCreateCommandSetup executado após criação
forwardPortsPortas para expor
customizationsConfigurações/extensões específicas do IDE

Integração IDE

IDEComo
VS Code--ide vscode (desktop ou navegador)
JetBrains--ide goland/pycharm/...
Browser (openvscode)--ide openvscode
SSH/terminaldevpod ssh <name>

Fluxos de Trabalho Comuns

# 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 Alternativas

AspectoDevPodGitHub CodespacesDevboxGitpod
HostingQualquer backend (sua escolha)Nuvem GitHubLocal (Nix)Nuvem/auto-hospedado
Specdevcontainer.jsondevcontainer.jsondevbox.jsonConfig Gitpod
ServerNenhum (somente cliente)GerenciadoNenhumServer
Best forDev portável, qualquer nuvemZero-config GitHubEnvs local reproduzíveisWorkspaces disparados por Git

DevPod usa a mesma especificação devcontainer que Codespaces; para envs locais baseados em Nix veja Devbox.

Recursos