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étodo | Como |
|---|
| CLI | Baixe de GitHub Releases (Linux/macOS/Windows) |
| Desktop app | GUI de Desktop DevPod disponível |
| Requirement | Um backend de provider (Docker, host SSH, K8s, nuvem) |
| Verify | devpod version |
Providers (Onde os Ambientes Executam)
| Comando | Descrição |
|---|
devpod provider add docker | Use Docker local |
devpod provider add ssh --option HOST=user@host | Use uma máquina remota |
devpod provider add kubernetes | Execute em um cluster K8s |
devpod provider add aws (gcloud, azure) | Providers de VM em nuvem |
devpod provider list | Liste providers configurados |
devpod provider use docker | Defina o provider padrão |
Criando Workspaces
| Comando | Descrição |
|---|
devpod up . | Inicie um env do devcontainer do repo atual |
devpod up github.com/org/repo | De uma URL de repo Git |
devpod up . --ide vscode | Abra em um IDE específico |
devpod up . --provider kubernetes | Escolha um backend |
devpod up . --recreate | Reconstrua o workspace |
Gerenciando Workspaces
| Comando | Descrição |
|---|
devpod list | Liste 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"] }
}
}
| Campo | Propósito |
|---|
image / dockerfile | Ambiente base |
features | Add-ons compostos (idiomas, ferramentas) |
postCreateCommand | Setup executado após criação |
forwardPorts | Portas para expor |
customizations | Configurações/extensões específicas do IDE |
Integração IDE
| IDE | Como |
|---|
| VS Code | --ide vscode (desktop ou navegador) |
| JetBrains | --ide goland/pycharm/... |
| Browser (openvscode) | --ide openvscode |
| SSH/terminal | devpod 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
| Aspecto | DevPod | GitHub Codespaces | Devbox | Gitpod |
|---|
| Hosting | Qualquer backend (sua escolha) | Nuvem GitHub | Local (Nix) | Nuvem/auto-hospedado |
| Spec | devcontainer.json | devcontainer.json | devbox.json | Config Gitpod |
| Server | Nenhum (somente cliente) | Gerenciado | Nenhum | Server |
| Best for | Dev portável, qualquer nuvem | Zero-config GitHub | Envs local reproduzíveis | Workspaces disparados por Git |
DevPod usa a mesma especificação devcontainer que Codespaces; para envs locais baseados em Nix veja Devbox.
Recursos