Files
GameList/IIS.md

1.3 KiB

IIS Deployment Notes

  • ASP.NET Core out-of-process behind IIS
  • HTTPS termination at IIS
  • SQLite DB stored in App_Data
  • App pool identity must have write access
  • Admin password via environment variable

Publish

  • From repo root: dotnet publish -c Release -o publish
  • Copy publish/ contents to site directory (keep App_Data writable by the app pool user).
  • Set environment variables in web.config or IIS config:
  • ASPNETCORE_ENVIRONMENT=Production
  • ADMIN_PASSWORD=<your-secret>
  • BasePath=/picknplay (only if the site is under a subfolder; omit for root)
  • Configure trusted reverse proxies/networks for forwarded headers (do not trust all sources):
  • ForwardedHeaders__KnownProxies__0=10.0.0.10
  • ForwardedHeaders__KnownNetworks__0=10.0.0.0/24
  • Optional: enable stdout logging in web.config during troubleshooting only; disable afterward.
  • Data protection keys are persisted to App_Data/keys; ensure this folder is deployed and writable so auth cookies stay valid across app pool recycles.
  • Frontend base path: set <meta name="app-base" content="/picknplay"> in wwwroot/index.html for production so API calls include the subpath (keep blank for local/root).

Permissions

  • Grant modify rights to the app pool identity on App_Data (DB file + wal).
  • Ensure firewall/HTTPS bindings match applicationUrl configured in IIS.