First run
One command starts everything:
dotnet run --project back/Blouppy.Aspire.AppHost
Aspire builds the solution, starts the containers, runs the migrations, then starts the services in order. Its dashboard opens in the browser and links to each of them.
What runs where
| Resource | Address |
|---|---|
| Gateway — open the application here | https://localhost:5071 |
| Angular dev server, behind the gateway | https://localhost:4201 |
| Web API | https://localhost:5001 |
| Identity host | https://localhost:5051 |
| Landing page | https://localhost:4301 |
| Documentation site | https://localhost:4401 |
| PostgreSQL | localhost:59808 — pgAdmin is linked from the dashboard |
| Redis | localhost:59812 |
| RabbitMQ management | http://localhost:59811 |
| MailPit — every e-mail sent in development | http://localhost:8025 |
The browser only ever talks to the gateway: it serves the Angular app (proxied from
the dev server), keeps the session cookie and forwards /api calls with an access
token. That is why the application is opened on port 5071, not 4201.
The migration runner applies every database migration, then exits; the identity host, the API and the gateway wait for it to complete. The landing page and the documentation site depend on nothing, so they stay up even when the application does not start.
Sign in
In Development, the services seed sample data: eleven users and a support account, their organizations, workspaces and teams.
- Open https://localhost:5071 and sign in as
J0hnd0ewithPassword123!— every sample user has that password. - Or pick any account in the login page's Development sign-in panel, without a password. It is not rendered outside Development.
SuperAdminis the support account, a member of every sample organization.
Register a new account and its confirmation e-mail arrives in MailPit, like the invitations.
Seeding
Seeding is idempotent — each seeder returns early when its table already has rows — so
it is safe across restarts. It runs only in Development, and Seed:Enabled overrides
that in either direction:
Seed__Enabled=false dotnet run --project back/Blouppy.Web # leave a shared database alone
The billing plan catalog is not sample data: the API writes it from Billing:Catalog
on every start, in every environment.
Running one piece on its own
The landing page, the documentation site and the design-system playground have no dependency on the API, so they run alone:
cd front/landing && npm run dev # port 4300
cd front/docs && npm run dev # port 4400
cd front/playground && npm run dev # port 4500
The application itself needs the gateway, so run it through the AppHost.