Repository navigation
Home
Rod Christiansen edited this page Oct 8, 2026
·
4 revisions
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.
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 |
| 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 |
-
versions.tfdeclares Terraform>= 1.5,azurerm ~> 4.33,azuread ~> 2.0; theremovedblock inmain.tfneeds Terraform 1.7 or later. - The backend is declared as
backend "azurerm" {}with no inline settings, so it must be supplied atterraform init. - The resource group is read with a
datasource. Terraform does not create it and will not delete it. - The PostgreSQL server and database carry
prevent_destroy. - MIT licensed.
MIT licensed — reportmate.app