http://127.0.0.1:8765, with inventory, cost, and opportunities populated and ready to explore.
Prerequisites before you begin:
- Python 3.10+ — used to run the FastAPI backend and DuckDB writer.
- Node.js 20+ — used to build the React 19 frontend.
- PowerShell 7 (recommended) — required for the
Connect-AzAccountAzure login and thestart-flux.ps1convenience launcher.
Local setup
1
Clone and install dependencies
Create a virtual environment, install the Python dependencies, then build the React frontend:The
npm run build step produces the static assets in frontend/dist that FastAPI serves in production mode. You only need to rebuild when frontend source files change.2
Connect to Azure
Flux uses your active Azure PowerShell session for local development. Sign in before starting the server:The signed-in identity needs read access to Azure Resource Graph and
Microsoft.CostManagement/*/read on the subscriptions you plan to add. No service principal or client secret is required for local development.3
Start Flux
Run the application entry point directly, or use the convenience launcher script:The launcher automatically builds the frontend if
frontend/dist/index.html is missing, then starts the server. Open http://127.0.0.1:8765 — Flux opens with a mock administrator session by default.You can pass a custom port to the launcher:4
Add subscriptions and synchronize
With Flux running:
- Open Administration → Integrations.
- Optionally add your Entra tenant ID for verification.
- Add one or more Azure subscription IDs and friendly names, then Save.
- Select Synchronize now.
Development mode
When you are actively changing frontend code, run the Vite dev server alongside the API for instant hot-module reload:1
Start the API in one terminal
http://127.0.0.1:8765 as normal.2
Start the Vite dev server in a second terminal
/api requests to port 8765, so the backend and frontend stay in sync.Demo data
To explore all chart and enrichment states without an Azure subscription, seed the database with demonstration data:Demo data covers inventory, cost, and opportunity enrichment states. It does not simulate real-time synchronization or the Flux Intelligence assistant, which requires a configured AI provider key.