← ClaudeAtlas

developing-azure-apps-locallylisted

Runs an Azure Lean Stack app fully offline on localhost — API + SQL Server + blob storage — with no Azure dependency, as the "try" tier of the local→test→prod flow on the main branch. Provides a docker-compose stack (SQL Server 2022 + Azurite), a one-command bootstrap, mock-mode for unset service keys, and an optional seed-from-test path. Use when setting up local development, running the app offline before deploying, adding a local database/blob emulator, or onboarding a developer to the repo.
alexpizarro/azure-lean-stack-skills · ★ 1 · DevOps & Infrastructure · score 72
Install: claude install-skill alexpizarro/azure-lean-stack-skills
# Developing Azure Apps Locally Run the whole app on `localhost` — API + SQL + blob storage — with **no dependency on Azure**. This is the local "try" tier of the deployment model: **local (`main`) → `test` → `production`**. `main` is never connected to an Azure environment. You iterate locally against an offline stack, then promote to `test` (and later `production`) via the branch-per-environment flow. See [orchestrating-azure-deployments](../orchestrating-azure-deployments/SKILL.md) Architecture Decision #0. ## When to use which local mode | Mode | Command | Use for | |------|---------|---------| | **Fully offline** (this skill) | `bash scripts/up.sh` then `npm start` + `npm run dev` | Backend work, schema changes, fast iteration, no Azure cost | | **Frontend against live test backend** | `cd frontend && npm run dev:test` | UI-only work that needs real test data; no local API/SQL | Prefer fully-offline for anything touching the API, SQL, or storage. ## The offline stack - **SQL Server 2022** in Docker (`mcr.microsoft.com/mssql/server:2022-latest`) — the same engine Azure SQL is built on. "Serverless" is an Azure *compute tier*, not a local concept; the T-SQL engine is identical, so migrations and queries behave the same locally as in Azure. - **Azurite** (`mcr.microsoft.com/azure-storage/azurite`) — local Azure Blob emulator. Blobs stream from `http://127.0.0.1:10000` instead of Azure Storage. Both run from [templates/docker-compose.yml](templates/docker-compose.yml