Skip to content
Rod Christiansen edited this page Oct 8, 2026 · 4 revisions

terraform-azurerm-reportmate

This repo is the Terraform module that deploys a complete ReportMate stack on Azure: a PostgreSQL Flexible Server, two Container Apps (the Next.js dashboard and the FastAPI backend), Key Vault, Application Insights, an Entra ID app registration for sign-in, and an optional Front Door in front of a custom domain.

It does not contain the application code. The dashboard and API images are pulled from a container registry; this module wires them together and hands them their configuration.

Where this sits

ReportMate agents on Windows and macOS post telemetry to the API. The API writes to Postgres. The dashboard reads through the API, polling it for updates. This module provisions everything under that description except the agents.

Repo What it is Wiki
reportmate-api FastAPI ingest + query backend wiki
reportmate-app-web Next.js dashboard wiki
reportmate-client-win Windows agent (C# / .NET) wiki
reportmate-client-mac macOS agent wiki
reportmate-cli Cross-platform admin CLI wiki
reportmate-mcp MCP server exposing the fleet to AI agents wiki
terraform-azurerm-reportmate Azure deployment module this wiki
terraform-aws-reportmate AWS deployment module wiki
selfhosted-docker-reportmate Docker Compose stack + Packer appliance wiki
reportmate-website Marketing site, reportmate.app wiki

Contents

Page What it covers
Prerequisites Tooling, Azure permissions, and the things you must create before the first apply
Getting-Started Backend, tfvars, first apply, database init
Architecture Module layout, traffic flow, how the two containers talk
Inputs Every root input variable, with type, default and meaning
Outputs Every root output
Submodules Every submodule variable and output, and what the root module passes
Resources Every Azure and Entra object the module creates
State-and-Backends Backend wiring, what is in state, prevent_destroy
Upgrading Provider constraints, image tags, and changes that force a rebuild
Cost Which variables actually drive spend, and what to turn down
Troubleshooting Failure modes visible in the module code, and the fix

Quick facts

  • versions.tf declares Terraform >= 1.5, azurerm ~> 4.33, azuread ~> 2.0; the removed block in main.tf needs Terraform 1.7 or later.
  • The backend is declared as backend "azurerm" {} with no inline settings, so it must be supplied at terraform init.
  • The resource group is read with a data source. Terraform does not create it and will not delete it.
  • The PostgreSQL server and database carry prevent_destroy.
  • MIT licensed.

Clone this wiki locally