Quick start
Get a fully-working app — auth, seeded data, admin console — running locally in one command.
Prerequisites
| Tool | Version | Notes |
|---|---|---|
| .NET SDK | 10.0 | dotnet --version should report 10.x |
| Node.js | 20+ (LTS) | for the Vite/React client |
| Dev HTTPS cert | — | dotnet dev-certs https --trust (first run only) |
No database to install — development uses a self-creating SQLite file.
Run it
dotnet run --project NetForge.ServerThat's it. The server is configured with SpaProxy, so dotnet run automatically launches the React dev server for you. On first run it also creates the SQLite database, applies all migrations, and seeds a ready-to-use admin account.
| Surface | URL |
|---|---|
| App (use this) | https://localhost:3000 |
| API (backend) | https://localhost:7000 |
| Interactive API docs (Scalar) | https://localhost:7000/scalar (dev only) |
| Background-jobs dashboard (Hangfire) | https://localhost:7000/hangfire (dev only) |
First run
If the browser warns about the certificate, run dotnet dev-certs https --trust and restart.
Sign in
A pre-confirmed administrator is seeded in development:
| Password | |
|---|---|
admin@netforge.local | Admin123!$ |
The admin holds the built-in Admin role, which grants the * (all-permissions) wildcard — so you can immediately explore every screen, including Administration at /admin.
Dev-only defaults
These come from appsettings.Development.json (Seed:Admin). Production seeds an admin too, but only from an explicit Seed:Admin:Email / Seed:Admin:Password — the local defaults are never used on a non-Development deploy. See Configuration.
Next steps
- Project structure — find your way around the codebase.
- Configuration — appsettings, email, OAuth.
- Add a feature — build your first vertical slice.