Getting Started
Set up Stack Duel locally - the web app and the API it talks to.
Stack Duel is served in two repos: stack-duel/web (the web application and this documentation site) and stack-duel/server (the .NET API).
You need both applications running locally. You will also need to spin up postgresql database, rabbitMQ, and Azurite. These can all be installed
using docker compose in the server repo. Finally you will need to setup an Auth0 tenant with a Nextjs application and an API. These values are set
in the .env file of the web repo and the user secrets of the server repo.
Note: If you run docker compose on the server with the default values, then you shouldn't need to set the database connetion string.
Prerequisites
- Node.js 24.5 and pnpm 11.10.0 for web.
- .NET 10 SDK, Docker, and the
dotnet-efCLI forserver.
Setup order
- Server first. Follow
server/README.md-docker-compose upfor Postgres/RabbitMQ, run the user-secrets setup script, apply migrations, seed data, thendotnet run --project StackDuel.Api. - Then web. Follow
web/README.md-pnpm i, copy.env.exampleto.env, fill in Auth0 andNEXT_PUBLIC_API_SERVER_URL(pointing at the API from step 1), thenpnpm dev.
The exact commands and environment variables are maintained in those two READMEs, not duplicated here - this page is about how the pieces fit together; the READMEs are the source of truth for exact setup steps.
Running tests
Each repo tests itself independently:
web:pnpm test(Vitest, unit) andpnpm e2e(Playwright, needs a real running stack).server:dotnet test StackDuel.slnx(needs Docker running, for the integration project's disposable Postgres container).
Next step
Once both are running, read Architecture Overview for how the codebase is organized.