Skip to main content
This guide walks you through running Flux on your local machine — either pointed at a real Azure subscription or loaded with demonstration data so you can explore every chart and enrichment state without an Azure connection. By the end you will have the full Flux dashboard running at 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-AzAccount Azure login and the start-flux.ps1 convenience 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:
  1. Open Administration → Integrations.
  2. Optionally add your Entra tenant ID for verification.
  3. Add one or more Azure subscription IDs and friendly names, then Save.
  4. Select Synchronize now.
Flux runs inventory, Advisor, Flux Intelligence, and cost collection in parallel. The first sync backfills 90 days of daily cost history for each new subscription. Progress is visible per source on the Integrations status page.

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

The API binds to http://127.0.0.1:8765 as normal.
2

Start the Vite dev server in a second terminal

Open http://localhost:5173. The Vite dev server proxies all /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 rows are inserted only when the DuckDB snapshot table is empty and are tagged with demo source lineage so they are distinguishable from real Azure observations. Starting Flux a second time with a non-empty database is safe — the seed step is skipped automatically.
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.

Verification

Run the Python test suite and frontend lint/build checks to confirm your installation is healthy:
Interactive API documentation is available at http://127.0.0.1:8765/docs once the server is running.