Skip to content

Deployment

NetForge publishes as a standard ASP.NET Core app that serves the built React SPA from wwwroot, so it runs anywhere .NET 10 does — IIS, a Linux host behind nginx, Azure App Service, or a container.

Build & publish

bash
dotnet publish NetForge.Server -c Release -o ./publish

The server project builds the React client as part of its build, so the published output is self-contained: the API plus the SPA's static assets. Run it with dotnet NetForge.Server.dll (or your host's process model).

Configure the environment

Production reads appsettings.Production.json, environment variables, and user-secrets — in that order of specificity. Keep secrets out of files; use environment variables. Work through the production checklist:

  • Seed:Admin:Email + Seed:Admin:Passwordrequired; no admin is seeded otherwise.
  • Database:Provider + ConnectionStrings:Default — see Databases.
  • Email:* — so confirmation and reset emails actually send.
  • App:ClientUrl — only if the SPA and API are served from different origins.
  • OAuth credentials for any providers you want visible.

HTTPS & cookies

The default cookie auth scheme issues a Secure cookie, so the app must be served over HTTPS in production (terminate TLS at your reverse proxy or host). Behind a proxy, forward the scheme/host headers so redirect URLs and cookies are correct.

Database

SQLite is fine for small or single-instance deployments (the database is a file on disk — make sure it's on persistent storage). For multi-instance or write-heavy production, use PostgreSQL or SQL Server and move to migrations.

Background jobs

Background jobs (Hangfire) use a persistent store and a job server that runs in-process. For a single instance this just works. If you scale out, point the Hangfire store at your production database so all instances share one queue.

Containers

Postgres/SQL Server scaffolds include a docker-compose.yml for the database. To containerize the app itself, add a standard ASP.NET Core Dockerfile (publish, then copy into a mcr.microsoft.com/dotnet/aspnet:10.0 runtime image) — nothing about NetForge is container-specific.

NetForge Community is MIT-licensed. Pro is a commercial edition.