Windows Server
One-time server setup
Deploy
npm --prefix web ci npm --prefix web run buildC:\apps\my-app\ ├── server.js ├── package.json ├── node_modules\ ├── .next\server\ ├── .next\static\ ← from web\.next\static\ ├── public\ ← from web\public\ └── .env ← create this on the servernssm install MyApp "C:\Program Files\nodejs\node.exe" "--env-file=C:\apps\my-app\.env" "C:\apps\my-app\server.js" nssm set MyApp AppDirectory "C:\apps\my-app" nssm set MyApp AppEnvironmentExtra +NODE_ENV=production +PORT=3000 +HOSTNAME=127.0.0.1 New-Item -ItemType Directory -Force -Path "C:\apps\my-app\logs" | Out-Null nssm set MyApp AppStdout "C:\apps\my-app\logs\stdout.log" nssm set MyApp AppStderr "C:\apps\my-app\logs\stderr.log" nssm set MyApp AppRotateFiles 1 nssm set MyApp AppRotateBytes 10485760 nssm start MyApp<configuration> <system.webServer> <rewrite> <rules> <rule name="ProxyToNode" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://127.0.0.1:3000/{R:1}" /> <serverVariables> <set name="HTTP_X_FORWARDED_PROTO" value="https" /> <set name="HTTP_X_FORWARDED_FOR" value="{REMOTE_ADDR}" /> </serverVariables> </rule> </rules> </rewrite> <!-- preserveHostHeader passes the original Host header to Node. --> <proxy enabled="true" preserveHostHeader="true" /> </system.webServer> </configuration>
TLS certificates
Verify
Last updated
Was this helpful?