Add Windows (PowerShell) support

- scripts/setup.ps1, scripts/pull-models.ps1, run.ps1 — PowerShell equivalents
  of the bash setup/pull/run scripts
- README + docs/DEPLOY.md: Windows quickstart and Task Scheduler autostart

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Joseph Costa
2026-07-05 02:12:02 -05:00
co-authored by Claude Opus 4.8
parent 9938d46a67
commit 95da8fb38d
5 changed files with 131 additions and 0 deletions
+21
View File
@@ -27,6 +27,27 @@ launchctl kickstart -k gui/$(id -u)/com.llm-router
systemctl --user restart llm-router
```
## Windows
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1 # venv + LiteLLM
powershell -ExecutionPolicy Bypass -File .\scripts\pull-models.ps1 # pull models
powershell -ExecutionPolicy Bypass -File .\run.ps1 # LiteLLM + router
```
`run.ps1` starts LiteLLM in the background, waits for it, then runs the router in
the foreground; closing it stops both.
**Run at login (Task Scheduler):**
```powershell
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-ExecutionPolicy Bypass -WindowStyle Hidden -File `"$PWD\run.ps1`""
$trigger = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName "llm-router" -Action $action -Trigger $trigger `
-Settings (New-ScheduledTaskSettingsSet -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1))
```
Requires **Python 3.12** (`winget install Python.Python.3.12`) and Ollama for
Windows. The router (stdlib Python) and LiteLLM run the same as on macOS/Linux.
## Networking
- The router binds `ROUTER_HOST` (default `0.0.0.0` = reachable on the LAN).