Salta ai contenuti

DevPod - Cheatsheet Ambienti di Sviluppo Come Codice Open-Source

DevPod - Cheatsheet Ambienti di Sviluppo Come Codice Open-Source

DevPod (di Loft) è uno strumento client-only, open-source che crea ambienti di sviluppo riproducibili da un devcontainer.json standard su qualsiasi backend — il tuo Docker locale, una macchina SSH remota, un cluster Kubernetes o una VM cloud. Pensa a “GitHub Codespaces auto-hosted e senza opinioni”: funziona con qualsiasi IDE (VS Code, JetBrains o un browser), controlli dove gira l”ambiente tramite provider collegabili e non c”è nessun componente server da gestire.

Installazione

MetodoCome
CLIScarica da GitHub Releases (Linux/macOS/Windows)
Desktop appDevPod Desktop GUI disponibile
RequisitoUn provider backend (Docker, host SSH, K8s, cloud)
Verificadevpod version

Provider (Dove Gira l”Ambiente)

ComandoDescrizione
devpod provider add dockerUsa Docker locale
devpod provider add ssh --option HOST=user@hostUsa una macchina remota
devpod provider add kubernetesEsegui in un cluster K8s
devpod provider add aws (gcloud, azure)Provider VM cloud
devpod provider listElenca i provider configurati
devpod provider use dockerImposta il provider predefinito

Creazione di Workspace

ComandoDescrizione
devpod up .Avvia un env dal devcontainer del repo corrente
devpod up github.com/org/repoDa un URL di repository Git
devpod up . --ide vscodeApri in un IDE specifico
devpod up . --provider kubernetesScegli un backend
devpod up . --recreateRicostruisci lo workspace

Gestione di Workspace

ComandoDescrizione
devpod listElenca i workspace
devpod stop <name>Arresta uno workspace
devpod delete <name>Elimina uno workspace
devpod ssh <name>SSH in uno workspace
devpod status <name>Mostra lo stato dello workspace

devcontainer.json (la Spec)

DevPod consuma la specifica Dev Container aperta, quindi lo stesso file funziona in 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"] }
  }
}
CampoScopo
image / dockerfileAmbiente base
featuresAdd-on componibili (linguaggi, strumenti)
postCreateCommandSetup eseguito dopo la creazione
forwardPortsPorte da esporre
customizationsImpostazioni/estensioni specifiche dell”IDE

Integrazione IDE

IDECome
VS Code--ide vscode (desktop o browser)
JetBrains--ide goland/pycharm/...
Browser (openvscode)--ide openvscode
SSH/terminaldevpod ssh <name>

Flussi di Lavoro Comuni

# Env di sviluppo locale Docker da devcontainer di un repo
devpod provider add docker
devpod up github.com/org/project --ide vscode

# Scarica le build pesanti su una macchina remota robusta
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh

# Env cloud effimero in Kubernetes, eliminato al termine
devpod up . --provider kubernetes
devpod delete my-project

DevPod vs Alternative

AspettoDevPodGitHub CodespacesDevboxGitpod
HostingQualsiasi backend (tua scelta)Cloud GitHubLocale (Nix)Cloud/self-host
Specdevcontainer.jsondevcontainer.jsondevbox.jsonConfigurazione Gitpod
ServerNessuno (client-only)GestitoNessunoServer
Migliore perPortatile, any-cloud devZero-config GitHubEnv locale riproducibileWorkspace attivati da git

DevPod utilizza la stessa specifica devcontainer di Codespaces; per env Nix locali vedi Devbox.

Risorse