A production-ready template for creating Azure-deployed applications with multiple tech stack options.
Click "Use this template" β "Create a new repository"
Name your repo anything you want (e.g.,
my-awesome-api)
After creating the repo, you have two options:
- Go to Actions tab
- Click "π Initialize Project"
- Click "Run workflow"
- Fill in the form and click "Run workflow"
Name your repo following this pattern:
{org}-{env}-{project}-{techstack}
Example: nl-dev-myapi-fastapi
The workflow will auto-configure based on the name.
git clone https://github.com/your-org/your-repo
cd your-repo
make install
make dev| Stack | Description | Port |
|---|---|---|
fastapi |
Python FastAPI - Simple REST API | 8000 |
fastapi-hexagonal |
Python with Clean Architecture/DDD | 8000 |
nodejs |
Node.js Express | 3000 |
go |
Go with standard library | 8080 |
dotnet |
.NET 8 Minimal API | 8080 |
flutter |
Flutter mobile/web | 80 |
reactnative |
React Native (Expo) | 19000 |
After initialization, your project will have:
βββ .github/
β βββ workflows/
β β βββ ci.yml # Lint, test, build
β β βββ deploy.yml # Azure deployment
β βββ ISSUE_TEMPLATE/
β βββ PULL_REQUEST_TEMPLATE.md
β βββ dependabot.yml
β βββ CODEOWNERS
βββ infra/
β βββ main.bicep # Infrastructure as Code
β βββ modules/ # Modular Azure resources
β βββ app-service.bicep
β βββ container-app.bicep
β βββ postgres.bicep
β βββ key-vault.bicep
β βββ storage.bicep
β βββ app-insights.bicep
β βββ redis.bicep
βββ config/
β βββ dev.json
β βββ staging.json
β βββ prod.json
βββ tests/
βββ .devcontainer/ # VS Code dev container
βββ docker-compose.yml # Local development
βββ Makefile # Common commands
βββ CONTRIBUTING.md
βββ [tech-stack-specific files]
| Option | Values | Description |
|---|---|---|
| Organization | nl, pvc, tws, mys |
Your organization code |
| Environment | dev, staging, prod |
Target environment |
| Region | euw, eus, wus, san, saf |
Azure region |
| Tech Stack | See table above | Application framework |
make install # Install dependencies
make dev # Run development server
make test # Run tests
make lint # Run linters
make format # Format code
make docker-build # Build Docker image
make docker-run # Run with Docker ComposeThe template includes Bicep modules for:
- App Service - Traditional web app hosting
- Container Apps - Serverless containers
- PostgreSQL - Managed database
- Key Vault - Secrets management
- Storage Account - Blob storage
- Application Insights - Monitoring
- Redis Cache - Caching layer
Deploy with:
az deployment sub create \
--location westeurope \
--template-file infra/main.bicep \
--parameters infra/parameters/dev.bicepparam- CI runs on every push: lint, test, build, security scan
- Deploy runs on push to
main: deploys to Azure
Required GitHub Secrets:
AZURE_CREDENTIALS- Service principal for Azure
Required GitHub Variables:
ACR_NAME- Azure Container Registry nameWEBAPP_NAMEorCONTAINER_APP_NAME- Deployment target
- Install VS Code
- Install Dev Containers extension
- Open repo in VS Code
- Click "Reopen in Container"
docker-compose upThis starts:
- Your application
- PostgreSQL database
- Redis cache
See CONTRIBUTING.md for development guidelines.
MIT
