@echo off echo 🚀 开始部署 Claw 项目... echo 📅 部署时间: %date% %time% REM 检查是否以管理员身份运行 net session >nul 2>&1 if %errorlevel% neq 0 ( echo ⚠️ 警告:请以管理员身份运行此脚本以获得最佳效果 pause ) REM 设置部署参数 set DEPLOY_DIR=C:\Claw set SERVICE_NAME_GATEWAY=ClawGateway set SERVICE_NAME_SMARTCLAW=ClawSmartClaw echo 📋 部署配置: echo 部署目录: %DEPLOY_DIR% echo 网关服务名称: %SERVICE_NAME_GATEWAY% echo SmartClaw服务名称: %SERVICE_NAME_SMARTCLAW% REM 创建部署目录 echo 📁 创建部署目录... if not exist "%DEPLOY_DIR%" mkdir "%DEPLOY_DIR%" if not exist "%DEPLOY_DIR%\gateway" mkdir "%DEPLOY_DIR%\gateway" if not exist "%DEPLOY_DIR%\smartclaw" mkdir "%DEPLOY_DIR%\smartclaw" if not exist "%DEPLOY_DIR%\web" mkdir "%DEPLOY_DIR%\web" if not exist "%DEPLOY_DIR%\logs" mkdir "%DEPLOY_DIR%\logs" REM 复制文件 echo 📦 复制构建产物... cd /d "%~dp0.." echo 复制网关服务... copy /Y "build\gateway\gateway.exe" "%DEPLOY_DIR%\gateway\" copy /Y "Server\gateway\.env" "%DEPLOY_DIR%\gateway\.env" 2>nul copy /Y "Server\gateway\.env.example" "%DEPLOY_DIR%\gateway\.env.example" 2>nul echo 复制 SmartClaw 服务... copy /Y "build\SmartClaw\smartclaw.exe" "%DEPLOY_DIR%\smartclaw\" copy /Y "Server\SmartClaw\.env" "%DEPLOY_DIR%\smartclaw\.env" 2>nul copy /Y "Server\SmartClaw\.env.example" "%DEPLOY_DIR%\smartclaw\.env.example" 2>nul echo 复制 Web 前端... xcopy /E /Y "build\web\*" "%DEPLOY_DIR%\web\" echo 复制配置文件... copy /Y "README.md" "%DEPLOY_DIR%\" copy /Y "docs\企业微信配置指南.md" "%DEPLOY_DIR%\" REM 创建 Windows 服务(可选) echo 🔧 配置 Windows 服务... echo 注意:服务安装需要管理员权限 choice /C YN /M "是否安装为 Windows 服务" if %errorlevel%==1 ( echo 正在安装服务... REM 创建服务启动脚本 echo @echo off > "%DEPLOY_DIR%\gateway\start.bat" echo cd /d "%~dp0" >> "%DEPLOY_DIR%\gateway\start.bat" echo gateway.exe >> "%DEPLOY_DIR%\gateway\start.bat" echo @echo off > "%DEPLOY_DIR%\smartclaw\start.bat" echo cd /d "%~dp0" >> "%DEPLOY_DIR%\smartclaw\start.bat" echo smartclaw.exe >> "%DEPLOY_DIR%\smartclaw\start.bat" REM 安装服务(使用 sc 命令) sc query %SERVICE_NAME_GATEWAY% >nul 2>&1 if %errorlevel%==0 ( echo 停止现有网关服务... sc stop %SERVICE_NAME_GATEWAY% timeout /t 5 /nobreak >nul sc delete %SERVICE_NAME_GATEWAY% ) sc query %SERVICE_NAME_SMARTCLAW% >nul 2>&1 if %errorlevel%==0 ( echo 停止现有 SmartClaw 服务... sc stop %SERVICE_NAME_SMARTCLAW% timeout /t 5 /nobreak >nul sc delete %SERVICE_NAME_SMARTCLAW% ) echo 创建新服务... sc create %SERVICE_NAME_GATEWAY% binPath= "%DEPLOY_DIR%\gateway\gateway.exe" start= auto DisplayName= "Claw Gateway Service" sc create %SERVICE_NAME_SMARTCLAW% binPath= "%DEPLOY_DIR%\smartclaw\smartclaw.exe" start= auto DisplayName= "Claw SmartClaw Service" echo 设置服务描述... sc description %SERVICE_NAME_GATEWAY% "Claw 项目网关服务 - 企业微信智能助手" sc description %SERVICE_NAME_SMARTCLAW% "Claw 项目 SmartClaw 服务 - 智能任务处理" echo 启动服务... sc start %SERVICE_NAME_GATEWAY% sc start %SERVICE_NAME_SMARTCLAW% echo ✅ 服务安装完成! ) else ( echo 跳过服务安装,您需要手动启动应用程序 ) REM 配置防火墙(可选) choice /C YN /M "是否配置 Windows 防火墙" if %errorlevel%==1 ( echo 🔥 配置防火墙... netsh advfirewall firewall add rule name="Claw Gateway" dir=in action=allow protocol=TCP localport=3000 netsh advfirewall firewall add rule name="Claw SmartClaw" dir=in action=allow protocol=TCP localport=3001 netsh advfirewall firewall add rule name="Claw Web" dir=in action=allow protocol=TCP localport=80 echo ✅ 防火墙配置完成! ) REM 创建启动脚本 echo 📝 创建启动脚本... echo @echo off > "%DEPLOY_DIR%\start.bat" echo echo 启动 Claw 服务... >> "%DEPLOY_DIR%\start.bat" echo echo 🚀 启动网关服务... >> "%DEPLOY_DIR%\start.bat" echo start "" "%DEPLOY_DIR%\gateway\gateway.exe" >> "%DEPLOY_DIR%\start.bat" echo timeout /t 3 /nobreak ^>nul >> "%DEPLOY_DIR%\start.bat" echo echo 🚀 启动 SmartClaw 服务... >> "%DEPLOY_DIR%\start.bat" echo start "" "%DEPLOY_DIR%\smartclaw\smartclaw.exe" >> "%DEPLOY_DIR%\start.bat" echo echo ✅ 服务已启动! >> "%DEPLOY_DIR%\start.bat" echo echo 📡 WebSocket 连接将自动建立 >> "%DEPLOY_DIR%\start.bat" echo pause >> "%DEPLOY_DIR%\start.bat" echo @echo off > "%DEPLOY_DIR%\stop.bat" echo echo 停止 Claw 服务... >> "%DEPLOY_DIR%\stop.bat" echo taskkill /F /IM gateway.exe >> "%DEPLOY_DIR%\stop.bat" echo taskkill /F /IM smartclaw.exe >> "%DEPLOY_DIR%\stop.bat" echo echo 服务已停止! >> "%DEPLOY_DIR%\stop.bat" echo pause >> "%DEPLOY_DIR%\stop.bat" echo ✅ 部署完成! echo 📍 部署信息: echo 安装目录: %DEPLOY_DIR% echo 网关服务: %DEPLOY_DIR%\gateway\gateway.exe echo SmartClaw 服务: %DEPLOY_DIR%\smartclaw\smartclaw.exe echo Web 前端: %DEPLOY_DIR%\web\ echo 日志目录: %DEPLOY_DIR%\logs\ echo 启动脚本: %DEPLOY_DIR%\start.bat echo 停止脚本: %DEPLOY_DIR%\stop.bat echo 📡 WebSocket 配置: 已启用长连接模式 echo 📅 完成时间: %date% %time% echo. echo 🎉 Claw 项目部署成功! echo 请检查服务状态,确保一切正常运行 echo 如有问题,请查看日志文件或联系技术支持 pause