This repository contains standalone Terraform templates for Azure, inspired by the Azure Terraform Quickstart Templates.
Each template is designed to be completely self-contained and deployable independently. Unless otherwise specified, the templates default to the lowest pricing tiers available to minimize costs.
├── examples/ # Standalone Terraform examples
│ ├── 101-*/ # Basic templates (1-2 services)
│ ├── 201-*/ # Intermediate templates (3-4 services)
│ └── 301-*/ # Advanced templates (5+ services)
├── scripts/ # Shared utility scripts
│ └── load-env.ps1 # Centralized environment variable loader
└── docs/ # Documentation
Also see the File Structure Documentation for detailed information about the workspace organization and how to create new templates.
- 101-web-app-windows-dotnet - Simple Windows App Service for .NET applications
- 201-web-app-sql-windows - Windows App Service with SQL Database for data-driven .NET applications
This codebase supports vibe coding using GitHub Copilot. For more details, read the VIBE CODING GUIDE.
- Choose a template from the
examples/directory - Navigate to the template directory
- Set up Azure authentication (see below)
- Customize the variables in
terraform.tfvarsas needed - Deploy the template:
terraform init
terraform plan
terraform applyEach template includes environment variable setup for Azure authentication:
-
Copy environment configuration:
cp .env.example .env
-
Edit
.envwith your Azure subscription ID:# Get your subscription ID az account show --query id -o tsv # Add it to .env file ARM_SUBSCRIPTION_ID=your-subscription-id-here
-
Load environment variables:
# PowerShell (local script) .\load-env.ps1 # Or use centralized script ..\..\scripts\load-env.ps1
These templates use the AzureRM provider's default authentication methods:
- Azure CLI authentication (recommended for local development)
- Environment variables (ARM_SUBSCRIPTION_ID, ARM_CLIENT_ID, etc.)
- Managed Identity (for Azure-hosted environments)
- Service Principal with client credentials
- Azure PowerShell authentication
No hardcoded credentials are required in the templates.
When contributing new templates:
- Follow the established file structure and naming conventions
- Include comprehensive documentation
- Provide example configurations
- Use cost-optimized default values
- Follow Terraform best practices
- Test thoroughly before submitting