install-opencode-service.ps1 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # opencode web Windows 服务安装脚本(NSSM 方案)
  2. # 用法:以管理员身份运行 PowerShell,执行:.\install-opencode-service.ps1
  3. Continue = 'Stop'
  4. # === 配置区 ===
  5. = 'OpenCodeWeb'
  6. = 'IwinTrue@123'
  7. = (Get-Command opencode.exe -ErrorAction Stop).Source
  8. = (Get-Command nssm -ErrorAction Stop).Source
  9. = "C:\ProgramData\OpenCodeWeb\logs"
  10. = "C:\ProgramData\OpenCodeWeb\data"
  11. New-Item -ItemType Directory -Path -Force | Out-Null
  12. New-Item -ItemType Directory -Path -Force | Out-Null
  13. Write-Host "OpenCode exe : " -ForegroundColor Cyan
  14. Write-Host "NSSM exe : " -ForegroundColor Cyan
  15. Write-Host "日志目录 : " -ForegroundColor Cyan
  16. Write-Host ""
  17. # Step 1: 安装/更新服务
  18. Write-Host "[1/3] 正在注册Windows服务..." -ForegroundColor Yellow
  19. & install
  20. & set AppParameters "web --port 4090 --hostname 0.0.0.0"
  21. & set AppEnvironmentExtra "OPENCODE_ADMIN_PASSWORD="
  22. & set AppDirectory "C:\Users\Administrator"
  23. & set Description "OpenCode AI Agent Web UI (port 4090)"
  24. & set Start SERVICE_AUTO_START
  25. & set AppStdout "\stdout.log"
  26. & set AppStderr "\stderr.log"
  27. # Step 2: 启动服务
  28. Write-Host "[2/3] 正在启动服务..." -ForegroundColor Yellow
  29. & restart
  30. Start-Sleep -Seconds 3
  31. # Step 3: 验证
  32. Write-Host "[3/3] 正在验证服务状态..." -ForegroundColor Yellow
  33. try {
  34. = Get-Service -ErrorAction Stop
  35. = netstat -ano | Select-String ":4090" | Select-String "LISTENING"
  36. Write-Host ""
  37. Write-Host "✅ 服务 '' 安装成功!" -ForegroundColor Green
  38. Write-Host " 状态 : "
  39. Write-Host " 访问地址 : http://localhost:4090"
  40. Write-Host " 登录密码 : "
  41. Write-Host " 日志文件 : "
  42. Write-Host ""
  43. Write-Host "--- 常用命令 ---" -ForegroundColor Cyan
  44. Write-Host " 启动服务 : nssm start "
  45. Write-Host " 停止服务 : nssm stop "
  46. Write-Host " 重启服务 : nssm restart "
  47. Write-Host " 服务状态 : Get-Service "
  48. Write-Host " 查看日志 : Get-Content $LogDir\stdout.log"
  49. Write-Host " 卸载服务 : nssm remove confirm"
  50. } catch {
  51. Write-Warning "服务安装完成,但启动可能有问题。请检查日志:"
  52. }