Infrastructure / Self-hosted AI Agent
गैर-समर्थित environment में परीक्षण: Windows Server 2019 पर OpenClaw इंस्टॉल करना (संपूर्ण गाइड) #
OpenClaw की आधिकारिक सिफ़ारिश WSL2 है, लेकिन Windows Server 2019 WSL2 को सपोर्ट नहीं करता। इस सीमा के बावजूद हमने native Windows रास्ते पर टिके रहकर WSL की बाधाएँ, npm की ज्ञात bugs, गायब modules, GPUStack connection की समस्याएँ, और session corruption— एक दर्जन से अधिक रुकावटों—को सफलतापूर्वक पार करते हुए dashboard launch और conversation क्षमता तक पहुँच बनाई। जो लोग इसी environment में यह प्रयास करना चाहते हैं, उनके लिए हम pitfalls और हमारे बनाए operations support tools सहित पूरी प्रक्रिया प्रकाशित कर रहे हैं।
Windows Server 2019 को OpenClaw आधिकारिक रूप से सपोर्ट नहीं करता। यह लेख एक verification record के रूप में प्रकाशित किया गया है और संचालन की कोई गारंटी नहीं देता। production environment में इसे लागू करने की अनुशंसा नहीं की जाती।
हमने Server 2019 पर परीक्षण क्यों किया #
हमारे पास in-house चल रहा एक Windows Server 2019 environment था, और हम उस server को सीधे OpenClaw से नियंत्रित करना चाहते थे। WSL2 के साथ Linux environment अलग-थलग हो जाता है, और Windows file systems, processes और registry तक पहुँच WSL boundary के माध्यम से होने लगती है। native Windows इंस्टॉलेशन के साथ OpenClaw सीधे Windows APIs को call कर सकता है, जो server संचालन के use cases के लिए तर्कसंगत है।
OpenClaw आधिकारिक रूप से WSL2 और native Windows दोनों को सपोर्ट करता है। WSL2 अधिक स्थिर और अनुशंसित है, लेकिन Server 2019 WSL2 को सपोर्ट नहीं करता, इसलिए native रास्ता ही एकमात्र विकल्प है।
Environment कॉन्फ़िगरेशन #
OpenClaw Host
- Windows Server 2019 Datacenter
- OpenClaw v2026.4.5 (pnpm इंस्टॉलेशन)
- Node.js v22.14.0
- Gateway port: 18789
Model & Search Backend
- GPUStack + vLLM 0.17.1
- Qwen2.5-14B-Instruct (Tesla V100 ×2)
- SearXNG (on-premises)
- Custom Provider (OpenAI-compatible)
WSL2 उपलब्ध न होने की पुष्टि तक का सफ़र #
शुरुआत में हमने आधिकारिक documentation का पालन करते हुए wsl --install आज़माया। लेकिन शुरू से ही समस्याओं से टकरा गए।
Error ① wsl पहचाना नहीं गया #
जब हमने wsl --install चलाया, तो “The term ‘wsl’ is not recognized” error आया।
हमने dism.exe से WSL features enable करके और PC को restart करके इसे हल किया।
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Error ② --install option अमान्य है #
wsl.exe मौजूद है लेकिन --install और --set-default-version options काम नहीं करते।
इसका कारण यह है कि wsl.exe का version बहुत पुराना है।
GitHub से नवीनतम MSI लाने पर भी यह हल नहीं हुआ।
जाँच के बाद मूल कारण स्पष्ट हो गया: Windows Server 2019 WSL2 के साथ असंगत है, और Microsoft ने इसे backport न करने का निर्णय लिया है। WSL2 केवल Windows Server 2022 और उसके बाद के versions पर उपलब्ध है।
WSL2 Windows 10 Build 19041 (May 2020 update) या उसके बाद से उपलब्ध है; server editions के लिए Windows Server 2022 या उसके बाद। Windows Server 2019 (Build 17763) पर WSL2 उपलब्ध नहीं है।
Pitfalls की सूची #
① Node.js इंस्टॉल नहीं हुआ #
install.ps1 Node.js इंस्टॉल करने में विफल रहा, जिससे node, npm और openclaw पहचाने नहीं गए। मैन्युअल MSI इंस्टॉलेशन आवश्यक था।
② openclaw command पहचाना नहीं गया #
npm का global installation path PATH में नहीं था और हर बार नई PowerShell window खोलने पर गायब हो जाता था। Machine-level persistence की ज़रूरत थी।
③ npm version में MODULE_NOT_FOUND की बाढ़ #
उदाहरण के लिए @larksuiteoapi/node-sdk, @slack/web-api, @buape/carbon और grammy जैसे packages एक-एक करके missing मिले। npm 2026.4.x का known bug (issue #61787) — pnpm पर स्विच करने से हल हुआ।
④ Git इंस्टॉल नहीं था #
npm dependency resolution के लिए Git आवश्यक है लेकिन वह इंस्टॉल नहीं था। retry से पहले Git for Windows का इंस्टॉलेशन ज़रूरी था।
⑤ pnpm approve-builds आवश्यक #
pnpm इंस्टॉलेशन के बाद openclaw, sharp, koffi आदि के build scripts approval के इंतज़ार में pending थे। सबको approve करने के लिए pnpm approve-builds -g चलाकर फिर reinstall करना पड़ा।
⑥ बचा हुआ NODE_OPTIONS commands तोड़ देता है #
जब NODE_OPTIONS=--stack-size=65536 वाले session को दोबारा इस्तेमाल किया गया, तो आगे के सभी openclaw commands “is not allowed in NODE_OPTIONS” error के साथ fail होने लगे। $env:NODE_OPTIONS="" से clear करना आवश्यक था।
⑦ GPUStack tool use 400 error लौटाता है #
जब --enable-auto-tool-choice के बिना vLLM शुरू किया गया, तो उसने 400 "auto" tool choice requires ... error दिया। GPUStack backend settings में यह parameter जोड़ना ज़रूरी था।
⑧ contextWindow ग़लती से 16k पहचाना गया #
model के सपोर्ट करने के बावजूद OpenClaw ने इसे 16000 detect किया, जिससे बार-बार context overflow होता रहा। config file में contextWindow: 32768 का मैन्युअल edit आवश्यक था।
⑨ Dashboard पर Internal Server Error दिखता है #
npm version के tarball में dist/control-ui/ शामिल नहीं था और UI प्रदर्शित नहीं हुआ। pnpm version से हल हुआ।
⑩ Session heartbeat पर lock हो गया #
बार-बार context overflow होने से main session को heartbeat के रूप में पहचाना जाने लगा, जिससे सामान्य conversation नहीं हो पा रही थी। sessions directory delete करके reset करना आवश्यक था।
⑪ Plugin RangeError से startup धीमा #
amazon-bedrock, google, minimax plugins startup पर Maximum call stack size exceeded फेंकते थे, जिससे कई मिनट की देरी होती थी। NODE_OPTIONS clear करने से हल हुआ।
⑫ store field warning #
GPUStack logs में fields were present in the request but ignored: {'store'} बार-बार दिखता है। संचालन पर असर नहीं पड़ता, लेकिन यह दर्शाता है कि OpenClaw अनावश्यक fields भेज रहा है।
संपूर्ण इंस्टॉलेशन प्रक्रिया #
-
Git for Windows इंस्टॉल करें
PowerShell बंद करके फिर से खोलें।
curl.exe -L -o git.exe "https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/Git-2.47.1-64-bit.exe" .\git.exe /VERYSILENT /NORESTART Start-Sleep -Seconds 30 -
Node.js 22 LTS मैन्युअली इंस्टॉल करें
PowerShell बंद करके फिर से खोलें,
curl.exe -L -o nodejs.msi "https://nodejs.org/dist/v22.14.0/node-v22.14.0-x64.msi" msiexec /i nodejs.msi /quiet /norestart Start-Sleep -Seconds 30node --versionसे verify करें। -
script execution enable करें और pnpm सेट अप करें
PowerShell बंद करके फिर से खोलें।
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force npm install -g pnpm pnpm setup -
pnpm से OpenClaw इंस्टॉल करें
pnpm add -g openclaw@2026.4.5 -
build scripts approve करें और reinstall करें
OpenClaw के build में लगभग 2 मिनट लगते हैं।
pnpm approve-builds -g # Select all (space to select all) → Enter → y pnpm add -g openclaw@2026.4.5 -
PATH को Machine level पर persist करें
$paths = @( 'C:\Program Files\nodejs', "$env:APPDATA\npm", "$env:LOCALAPPDATA\pnpm" ) $current = [System.Environment]::GetEnvironmentVariable('PATH','Machine') $entries = ($current -split ';') + $paths | Select-Object -Unique [System.Environment]::SetEnvironmentVariable('PATH', ($entries -join ';'), 'Machine') $env:PATH = ($entries -join ';') -
Onboarding
model provider के लिए Custom Provider, Base URL के रूप में GPUStack का
$env:NODE_OPTIONS="" openclaw onboard/v1endpoint, और compatibility के लिएOpenAI-compatibleचुनें। -
contextWindow मैन्युअली ठीक करें
provider का नाम अपने environment के अनुसार adjust करें।
$config = Get-Content "$env:USERPROFILE\.openclaw\openclaw.json" | ConvertFrom-Json $config.models.providers.'custom-10-255-253-205'.models[0].contextWindow = 32768 $config.models.providers.'custom-10-255-253-205'.models[0].maxTokens = 8192 $config | ConvertTo-Json -Depth 20 | Set-Content "$env:USERPROFILE\.openclaw\openclaw.json" -Encoding UTF8 -
Gateway launch करें और संचालन verify करें
जैसे ही
$env:NODE_OPTIONS="" openclaw gateway run[gateway] readyदिखे, दूसरी window खोलकरopenclaw dashboardचलाएँ।
GPUStack कॉन्फ़िगरेशन (vLLM Backend Parameters) #
tool use (function calling) को enable करने के लिए, GPUStack management dashboard में model के backend parameters में निम्नलिखित जोड़ें।
Backend Parameters (आवश्यक) #
--max-model-len 32768
--generation-config vllm
--enable-auto-tool-choice
--tool-call-parser hermes
महत्वपूर्ण नोट्स #
- “Changes apply only after instance deletion and recreation” संदेश दिखता है; save के बाद model restart आवश्यक है
- Tesla V100 (compute capability 7.0) FlashAttention2 का उपयोग नहीं कर सकता और TRITON backend पर fallback करता है, लेकिन संचालन सामान्य रहता है
--tool-call-parser hermesउसी field में space-delimited रूप में दर्ज किया जाता है
Session Recovery प्रक्रिया #
बार-बार context overflow होने से main session heartbeat के रूप में पहचाना जा सकता है, जिससे सामान्य conversation रुक जाती है। reset करने के लिए sessions directory delete करें।
openclaw gateway stop
Remove-Item "$env:USERPROFILE\.openclaw\agents\main\sessions" -Recurse -Force
New-Item "$env:USERPROFILE\.openclaw\agents\main\sessions" -ItemType Directory
openclaw gateway run
sessions directory delete करने से conversation history स्थायी रूप से खो जाती है। execute करने से पहले महत्वपूर्ण conversations का backup लें।
बनाया गया Operations Support Tool: OpenClaw PATH Manager #
मैन्युअल PATH कॉन्फ़िगरेशन के overhead को खत्म करने के लिए हमने एक PowerShell script और एक browser-आधारित diagnostic UI tool बनाया।
PATH Diagnostic UI (Browser) #
3 tabs वाला एक interactive tool। “Status Check” tab में दिया command PowerShell में चलाकर output paste करें; यह अपने आप diagnose करता है कि Node.js, pnpm, npm और openclaw के लिए PATH सही सेट है या नहीं। समस्या होने पर यह अपने आप “PATH Fix” tab पर स्विच होकर correction commands दिखाता है।
ocstart.ps1 (PowerShell) #
desktop पर save करके double-click करने पर PATH कॉन्फ़िगरेशन, Gateway start/stop, dashboard और TUI का menu मिलता है। हर बार मैन्युअली PATH सेट करने की ज़रूरत खत्म हो जाती है।
ocstart.ps1 की सामग्री #
param([switch]$Stop)
$env:NODE_OPTIONS=""
$paths = @(
'C:\Program Files\nodejs',
"$env:APPDATA\npm",
"$env:LOCALAPPDATA\pnpm"
)
foreach ($p in $paths) {
if (($env:PATH -split ';') -notcontains $p) { $env:PATH += ";$p" }
}
if ($Stop) {
Write-Host "Stopping Gateway..."
& openclaw gateway stop
exit
}
Write-Host "OpenClaw PATH configured"
Write-Host "openclaw: $((Get-Command openclaw -EA SilentlyContinue).Source)"
$action = Read-Host "[1] Start Gateway [2] Stop Gateway [3] Dashboard [4] TUI [5] Status`n> "
switch ($action) {
'1' { openclaw gateway run }
'2' { openclaw gateway stop }
'3' { openclaw dashboard }
'4' { openclaw tui }
'5' { openclaw gateway status; openclaw doctor }
default { Write-Host "Cancelled" }
}
Desktop पर save करें और Shortcut बनाएँ #
# Save script to desktop
$script | Out-File "$env:USERPROFILE\Desktop\ocstart.ps1" -Encoding UTF8
# Create shortcut
$ws = New-Object -ComObject WScript.Shell
$sc = $ws.CreateShortcut("$env:USERPROFILE\Desktop\OpenClaw Launcher.lnk")
$sc.TargetPath = "powershell.exe"
$sc.Arguments = '-ExecutionPolicy Bypass -File "C:\Users\Administrator\Desktop\ocstart.ps1"'
$sc.WorkingDirectory = "$env:USERPROFILE\Desktop"
$sc.IconLocation = "powershell.exe,0"
$sc.Save()
संचालन सत्यापन Checklist #
- browser में dashboard प्रदर्शित होता है (
http://127.0.0.1:18789) - model provider connection
Verification successfulदिखाता है - chat से
mainsession में जवाब मिलते हैं - GPUStack logs में
POST /v1/chat/completions HTTP/1.1" 200 OKदिखता है - Gateway Scheduled Task के रूप में registered है और login पर auto-start होता है
- SearXNG search कॉन्फ़िगर है
- session screen का TOKENS display
xxxxx / 32768दिखाता है (16000 नहीं)
सारांश #
गैर-समर्थित Windows Server 2019 environment में OpenClaw deploy करना कई known bugs और environment-विशिष्ट बाधाओं के कारण चुनौतीपूर्ण साबित हुआ। इस काम से मिली तीन सबसे महत्वपूर्ण सीखें ये हैं:
- npm के बजाय pnpm का उपयोग करें: npm 2026.4.x में dependencies तोड़ने वाला एक critical bug है
- हर बार PATH और NODE_OPTIONS जाँचें: नई windows खोलने पर ये गायब हो जाते हैं;
ocstart.ps1से automate करें - GPUStack vLLM parameters में
--enable-auto-tool-choice --tool-call-parser hermesजोड़ें: इनके बिना tool use 400 error लौटाता है
Windows Server 2019 पर OpenClaw इंस्टॉलेशन संभव है। हालाँकि, pnpm का उपयोग, PATH को persist करना और GPUStack backend parameters को सही ढंग से कॉन्फ़िगर करना अनिवार्य है। यदि आप WSL2 सपोर्ट वाले environment (Server 2022 या बाद के) में migrate कर सकते हैं, तो वह रास्ता काफ़ी आसान है।