Full-stack demo (React + ASP.NET Core + MongoDB). This phase contains the API and the standalone frontend.
docker compose -f infra/docker-compose.api.yml up -d --buildAPI: http://localhost:5069
Health: http://localhost:5069/api/health
dotnet run --project src/ReactFullStackDemo.Apidotnet test ReactFullStackDemo.slnx -c Releasecd src/ReactFullStackDemo.Web
npm install
npm test
npm run devVite dev server: http://localhost:5173
cd src/AngularFullStackDemo.Web
npm install
npm startAngular dev server: http://localhost:4200
docker compose -f infra/docker-compose.web.yml up -d --buildWeb: http://localhost:8080
Note: /api is proxied to the api container. For a full stack run, use the compose file below.
docker compose -f infra/docker-compose.full.yml up -d --buildWeb + API via Nginx: http://localhost:8080
Health: http://localhost:8080/api/health
docker compose -f infra/docker-compose.angular.full.yml up -d --buildAngular Web + API via Nginx: http://localhost:8081
Health: http://localhost:8081/api/health
docker compose -f infra/docker-compose.angular.web.yml up -d --buildAngular Web: http://localhost:8081
docker compose -p angular -f infra/docker-compose.angular.web.local.yml up -d --buildAngular Web: http://localhost:8081
Backend: http://localhost:5069 (from infra/docker-compose.full.yml)
This deploys a single Container App with three containers: web, api, and a MongoDB sidecar.
- Authenticate
az login- Bootstrap Terraform state storage (one-time)
cd infra/bootstrap
terraform init
terraform apply- Provision infrastructure
cd infra/terraform
terraform init
terraform apply- Build and push images
az acr login -n <acr-name-from-output>
docker build -t <acr-login-server>/react-fullstack-demo-api:v1 -f src/ReactFullStackDemo.Api/Dockerfile .
docker push <acr-login-server>/react-fullstack-demo-api:v1
docker build -t <acr-login-server>/react-fullstack-demo-web:v1 -f src/ReactFullStackDemo.Web/Dockerfile .
docker push <acr-login-server>/react-fullstack-demo-web:v1- Deploy the images
cd infra/terraform
terraform apply -var="api_image_tag=v1" -var="web_image_tag=v1"- Get the URL
terraform output container_app_url
terraform output angular_app_urlci.yml: runs on push tomain.deploy-azure-dispatch.yml: runs automatically aftercisucceeds onmain, and can also be run manually viaworkflow_dispatch.
- English:
docs/architecture-en.md
