Compared to hosted services such as Github Codespaces, JetBrains Spaces, or Google Cloud Workstations, DevPod has the following advantages:
- Open Source: DevPod is 100% open-source and extensible. A provider doesn’t exist? Just create your own.
- Client-only: No need to install a server backend. DevPod runs solely on your computer.
- Cross IDE support: VS Code and the full JetBrains suite is supported. Other IDEs can be connected through ssh.
- Rich feature set: DevPod already supports prebuilds, auto inactivity shutdown, git & docker credentials sync, with many more features to come.
I've gotten tons of good feedback from folks here in the past for other OSS projects, so I'm hoping to get some thoughts on this new project today.
What do you think? Open for any feedback - even if you think DevPod sucks, let me know.
- File sync with the local filesystem and the container (2-way)
- Port-forwarding to localhost for debugging (I guess the DevPod way is to run the entire IDE in the container, but I love Tilt/DevSpace for allowing me to work in my local fat IDE)
File sync: That is a great idea. We got that in DevSpace already as you mentioned and we definitely think this could be super valuable in DevPod as well. Right now, a git push and then pull is required to get things from inside DevPod updated on local but with sync this would be even easier and faster.
How well does it work for web dev - Django specifically? Is it as simple as running the dev server and accessing the locally-forwarded port through a local browser? Are there any gotchas to be aware of? Thanks!
I often find myself wanting to code on an existing project from my phone. Yes, vscode kind of works but it‘s not a quite the experience i‘m looking for.
When I fired it up in vs code, I was immediately presented with all the dev container stuff, and I wasn’t sure what to do next.
I assumed I’d write and store all of my code locally in my Mac, then just use volumes to sync it over and run docker commands on my machine to interact with the app…
Should I use dev containers instead? Should I use dev pods? I want to be able to leave code for a while and come back and easily fire it up, I want simple deploys on single servers when ready (compose or swarm)…but I just keep running into so many options I’m getting confused.
I manage multiple AWS accounts, and my credentials file has multiple profiles in it. When using the AWS provider, is it possible to specify which profile to use?
But I'll open an issue to investigate how to implement the profile-selection, thanks for the feedback :)
EDIT: implemented
Could you clarify how authentication happens for things like private Github repos or AWS authentication?
- Private git repos: They work out of the box because DevPod uses regular git to clone repos and authenticate with your git hosting provider. The desktop app injects a lightweight client into the workspace and then connects from your machine to the client to inject your git credentials into the workspace. This can also be disabled for untrusted or public workspaces but it's by default on because it allows you to `git pull/push` from within the workspace without any issues.
- Credentials for providers: If you use the AWS, GCP, DO, Kubernetes or any other remote provider to provision dev workspaces with DevPod, it requires that either a) you have the credentials on your local machine (e.g. already signed-in via AWS CLI or gcloud CLI or valid kube-context/kube-config for k8s) or b) you provide the credentials directly to DevPod when adding the provider (e.g. provide k8s service account token or gcloud/aws tokens). Option a) would be my recommendation because credentials are stored safely by the respective cloud provider CLIs rather than having to trust DevPod to store them safely for you.