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
| Method | How |
|---|
| CLI | Download from GitHub Releases (Linux/macOS/Windows) |
| Desktop app | DevPod Desktop GUI available |
| Requirement | Ein Provider-Backend (Docker, SSH-Host, K8s, Cloud) |
| Verify | devpod version |
Providers (Where Environments Run)
| Command | Beschreibung |
|---|
devpod provider add docker | Verwende Local Docker |
devpod provider add ssh --option HOST=user@host | Verwende eine Remote-Maschine |
devpod provider add kubernetes | Führe in einem K8s-Cluster aus |
devpod provider add aws (gcloud, azure) | Cloud-VM-Provider |
devpod provider list | Aufgelistete konfigurierte Provider |
devpod provider use docker | Setze den Standard-Provider |
Creating Workspaces
| Command | Beschreibung |
|---|
devpod up . | Starte ein Umfeld aus der devcontainer des aktuellen Repos |
devpod up github.com/org/repo | Von einer Git-Repo-URL |
devpod up . --ide vscode | Öffne in einer spezifischen IDE |
devpod up . --provider kubernetes | Wähle ein Backend |
devpod up . --recreate | Baue den Workspace neu |
Managing Workspaces
| Command | Beschreibung |
|---|
devpod list | Aufgelistete 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"] }
}
}
| Field | Zweck |
|---|
image / dockerfile | Basis-Umgebung |
features | Zusammensetzbare Add-Ons (Sprachen, Tools) |
postCreateCommand | Setup läuft nach Erstellung |
forwardPorts | Ports zum Exponieren |
customizations | IDE-spezifische Einstellungen/Extensions |
IDE Integration
| IDE | How |
|---|
| VS Code | --ide vscode (Desktop oder Browser) |
| JetBrains | --ide goland/pycharm/... |
| Browser (openvscode) | --ide openvscode |
| SSH/terminal | devpod 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
| Aspect | DevPod | GitHub Codespaces | Devbox | Gitpod |
|---|
| Hosting | Any Backend (deine Wahl) | GitHub Cloud | Local (Nix) | Cloud/Self-Host |
| Spec | devcontainer.json | devcontainer.json | devbox.json | Gitpod Config |
| Server | Keine (Client-Only) | Managed | Keine | Server |
| Best for | Portable, Any-Cloud Dev | Zero-Config GitHub | Reproduzierbare Lokal | Git-Triggered Workspaces |
DevPod verwendet die gleiche devcontainer Spez wie Codespaces; für lokale Nix-basierte Umgebungen sehe Devbox.
Resources