Zum Inhalt springen

DevPod - Open-Source Dev Environments as Code Cheatsheet

DevPod - Open-Source Dev Environments as Code Cheatsheet

DevPod (von Loft) ist ein Client-Only, Open-Source-Werkzeug, das reproduzierbare Entwicklungsumgebungen von einer standardisierten devcontainer.json auf einem beliebigen Backend erstellt — dein lokales Docker, eine Remote-SSH-Maschine, ein Kubernetes-Cluster oder eine Cloud-VM. Denke „Selbstgehostete, unvorgefasste GitHub Codespaces”: Es funktioniert mit jeder IDE (VS Code, JetBrains oder einem Browser), du steuerst, wo die Umgebung läuft, über steckerbare Provider, und es gibt keine Server-Komponente zu betreiben.

Installation

MethodHow
CLIDownload from GitHub Releases (Linux/macOS/Windows)
Desktop appDevPod Desktop GUI available
RequirementEin Provider-Backend (Docker, SSH-Host, K8s, Cloud)
Verifydevpod version

Providers (Where Environments Run)

CommandBeschreibung
devpod provider add dockerVerwende Local Docker
devpod provider add ssh --option HOST=user@hostVerwende eine Remote-Maschine
devpod provider add kubernetesFühre in einem K8s-Cluster aus
devpod provider add aws (gcloud, azure)Cloud-VM-Provider
devpod provider listAufgelistete konfigurierte Provider
devpod provider use dockerSetze den Standard-Provider

Creating Workspaces

CommandBeschreibung
devpod up .Starte ein Umfeld aus der devcontainer des aktuellen Repos
devpod up github.com/org/repoVon einer Git-Repo-URL
devpod up . --ide vscodeÖffne in einer spezifischen IDE
devpod up . --provider kubernetesWähle ein Backend
devpod up . --recreateBaue den Workspace neu

Managing Workspaces

CommandBeschreibung
devpod listAufgelistete Workspaces
devpod stop <name>Stoppe einen Workspace
devpod delete <name>Lösche einen Workspace
devpod ssh <name>SSH zu einem Workspace
devpod status <name>Zeige Workspace-Status

devcontainer.json (the Spec)

DevPod konsumiert die offene Dev Container-Spezifikation, daher funktioniert die gleiche Datei in Codespaces, VS Code und 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"] }
  }
}
FieldZweck
image / dockerfileBasis-Umgebung
featuresZusammensetzbare Add-Ons (Sprachen, Tools)
postCreateCommandSetup läuft nach Erstellung
forwardPortsPorts zum Exponieren
customizationsIDE-spezifische Einstellungen/Extensions

IDE Integration

IDEHow
VS Code--ide vscode (Desktop oder Browser)
JetBrains--ide goland/pycharm/...
Browser (openvscode)--ide openvscode
SSH/terminaldevpod ssh <name>

Common Workflows

# 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
HostingAny Backend (deine Wahl)GitHub CloudLocal (Nix)Cloud/Self-Host
Specdevcontainer.jsondevcontainer.jsondevbox.jsonGitpod Config
ServerKeine (Client-Only)ManagedKeineServer
Best forPortable, Any-Cloud DevZero-Config GitHubReproduzierbare LokalGit-Triggered Workspaces

DevPod verwendet die gleiche devcontainer Spez wie Codespaces; für lokale Nix-basierte Umgebungen sehe Devbox.

Resources