# Claude Learn: deployment
<!-- paths: deployment/**/*, public/web.config, Dockerfile*, docker-compose*.yml, *.sh, ansible/**/*, lxc/**/* -->

## P: IIS URL Rewrite Rules for SPA with Multiple API Backends
@2025-12-22 #iis #deployment #spa | inferred:med
Configure IIS web.config to proxy different API paths to different backend ports while serving SPA for all other routes.
```xml
<rewrite>
  <rules>
    <rule name="Proxy Reports API" stopProcessing="true">
      <match url="^api/reports/(.*)" />
      <action type="Rewrite" url="http://localhost:8001/api/{R:1}" />
    </rule>
    <rule name="SPA Fallback" stopProcessing="true">
      <match url=".*" />
      <conditions><add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /></conditions>
      <action type="Rewrite" url="/index.html" />
    </rule>
  </rules>
</rewrite>
```

## P: Scripturi pentru pornire/oprire servere ROA2WEB
@2026-01-07 #scripts #server-management | explicit:high
Serverele se pornesc și opresc DOAR cu scripturile dedicate:
- `./start-prod.sh` - pornește tot (SSH tunnel + backend + frontend) în mod producție
- `./start-test.sh` - pornește în mod test
- `./start-backend.sh restart` - restartează doar backend-ul
- `./start-frontend.sh restart` - restartează doar frontend-ul
- `./status.sh` - verifică starea serviciilor
Nu folosi: `pkill`, `fuser -k`, sau alte comenzi manuale pentru oprire.
