From Zero to DevBox: A Cloud-Ready Setup in Minutes
Setting up a fresh development environment can be time-consuming, but with Windows Package Manager (winget), you can streamline the process significantly. This guide outlines the basic steps to configure a DevBox with essential tools for development, including optional setups for .NET developers.
Installing Core Development Tools Begin by installing the foundational tools using the winget command-line utility. Open PowerShell or Command Prompt with administrator privileges and run the following commands:
winget install vscode
winget install Git.Git
winget install Microsoft.AzureCLI
winget install GitHub.cli
winget install Hashicorp.Terraform
These commands will install:
- Visual Studio Code: A lightweight and powerful code editor.
- Git for Windows: The version control system widely used in software development.
- Azure CLI: Useful for managing Azure resources directly from your terminal (needed for Azure Terraforming)
- GitHub CLI: Streamlines GitHub operations from the command line (needed for my GitHub AT-AT which uses the GitHub Terraform provider)
- Terraform: An infrastructure-as-code tool for building, changing, and managing infrastructure.
Setup Docker & WSL
For containerized development and cloud-native workflows, Docker is a must-have. Start by installing WSL (Windows Subsystem for Linux), which Docker Desktop depends on:
wsl --install
Then install Docker Desktop:
winget install Docker.DockerDesktop
Docker will prompt you to enable WSL integration and configure your Linux distributions. Follow the on-screen setup to complete the installation.
Optional: Install Visual Studio 2022
If you plan to develop .NET applications, installing Visual Studio 2022 is recommended. You can choose between the Professional or Enterprise editions:
Microsoft.VisualStudio.2022.Professional
Microsoft.VisualStudio.2022.Enterprise
Note: These commands install the Visual Studio shell only. You’ll need to launch Visual Studio afterward to select and install specific workloads and components based on your development needs.
Setting Up SSH for GitHub
To securely connect to GitHub, generate an SSH key:
ssh-keygen -t ed25519 -C "your_email@example.com"
Follow the prompts to save the key to the default location and set a passphrase if desired.
Configure GitHub Identity Locally
To finalize your setup, configure your Git identity with the following commands:
git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"
This ensures your commits are properly attributed and recognized on GitHub. I somehow always seem to forget this step and it ends up blocking a commit I am trying to do! It’s best to get this done early so you don’t have to worry about it.
Conclusion
With these steps, you’ll have a fully functional DevBox tailored for cloud development, infrastructure management, and source control. Using winget simplifies the initial setup, allowing you to get started quickly and focus on your projects rather than configuration. I’m planning on creating an automated installation of this DevBox using Packer & Terraform so I can spin up (and tear down) new machines using my Proxmox cluster.