Skip to content

About

一个远程文件管理器。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

AutoDetector

AutoDetector 是一个面向 Windows 设备的轻量级远程文件管理工具,由一个 Web Server 和多个 Windows Agent 组成。

它适合内网、实验室、机房、受控办公环境等场景。管理端通过浏览器登录后台,查看在线设备、浏览磁盘、下载和编辑文件、执行基础命令,并对常见缓存目录做智能清理分析。

特性

  • 密码登录的 Web 后台
  • 实时显示在线 Agent、主机名和磁盘列表
  • 浏览本地盘、可移动盘、网络盘和光驱
  • 下载文件,支持中文文件名
  • 在线新建和编辑 UTF-8 文本文件
  • 在线删除文件或文件夹
  • 后台主动断开指定 Agent
  • 远程执行基础 cmd.exe /c 命令
  • 智能清理分析:扫描常见缓存、下载目录和用户目录
  • 前端可直接配置智能清理所用的大模型参数
  • Agent 无控制台窗口、无任务栏窗口、无托盘图标
  • Agent 采用单实例锁,重复启动不会再生成第二个 Agent 进程
  • Agent 断线自动重连,Server 通过心跳识别离线
  • 可选长期启动:首次运行后安装到当前用户目录并设置开机自启

架构

Browser
  -> AutoDetector Server
     -> Web API
     -> WebSocket /ws/ui
     -> WebSocket /ws/agent
        -> Windows Agent
           -> 文件系统操作
           -> 命令执行
           -> 存储扫描

目录结构

AutoDetector
├─ server.js
├─ src/
│  ├─ app.js
│  ├─ routes.js
│  ├─ agent-registry.js
│  ├─ session-store.js
│  ├─ simple-websocket.js
│  ├─ ws-handlers.js
│  ├─ config.js
│  ├─ storage-assistant.js
│  ├─ storage-ai-settings.js
│  └─ http-utils.js
├─ public/
│  ├─ index.html
│  ├─ login.html
│  ├─ app.js
│  ├─ login.js
│  └─ styles.css
├─ build-agent.ps1
├─ Dockerfile
└─ docker-compose.yml

环境要求

Server 端:

  • Node.js 20+,或 Docker

Agent 生成端:

  • Windows
  • .NET Framework 4.x 自带的 csc.exe

Agent 运行端:

  • Windows

快速启动

方式一:直接运行 Node Server

这个项目的 Server 只使用 Node.js 内置模块,不需要 npm install。

启动服务:

node server.js --host 0.0.0.0 --port 5000 --password "your-password"

打开后台:

http://SERVER_IP:5000

生成 Agent:

.\build-agent.ps1

Server WebSocket 请填写:

ws://SERVER_IP:5000/ws/agent

如果你是通过域名访问后台,例如:

http://your-domain.com

那么 Agent 应填写:

ws://your-domain.com/ws/agent

方式二:使用 Docker

先修改 docker-compose.yml 里的后台密码:

environment:
  AUTODETECTOR_PASSWORD: "your-password"

启动:

docker compose up -d --build

打开后台:

http://SERVER_IP:5000

如果 Agent 连接 Docker 部署的服务,WebSocket 地址写成:

ws://SERVER_IP:5000/ws/agent

Server 启动参数

node server.js `
  --host 0.0.0.0 `
  --port 5000 `
  --password "your-password" `
  --agent-timeout-ms 15000 `
  --storage-ai-base-url https://lucen.run `
  --storage-ai-model gpt-5.4 `
  --storage-ai-api-key "your-api-key" `
  --storage-ai-timeout-ms 45000 `
  --storage-ai-config-path "storage-ai.settings.json"

也支持环境变量:

$env:AUTODETECTOR_PASSWORD = "your-password"
$env:AUTODETECTOR_STORAGE_AI_BASE_URL = "https://lucen.run"
$env:AUTODETECTOR_STORAGE_AI_MODEL = "gpt-5.4"
$env:AUTODETECTOR_STORAGE_AI_API_KEY = "your-api-key"
$env:AUTODETECTOR_STORAGE_AI_TIMEOUT_MS = "45000"
node server.js --host 0.0.0.0 --port 5000

参数说明:

  • --port:Server 监听端口,默认建议使用 5000
  • --password:后台登录密码
  • --agent-timeout-ms:Agent 心跳超时判定时间,默认 15000
  • --storage-ai-base-url:模型服务地址
  • --storage-ai-model:模型 ID
  • --storage-ai-api-key:模型 API Key
  • --storage-ai-timeout-ms:模型请求超时
  • --storage-ai-config-path:模型配置文件保存路径

Docker 说明

Dockerfile 和 docker-compose.yml 已经准备好,容器内默认监听 5000 端口。

持久化目录:

./data -> /app/data

当前会持久化前端保存的模型配置文件:

/app/data/storage-ai.settings.json

查看状态:

docker compose ps
docker compose logs -f

更新:

git pull
docker compose up -d --build

生成 Agent

在 Windows 上运行:

.\build-agent.ps1

也可以直接传参数:

.\build-agent.ps1 `
  -Server ws://SERVER_IP:5000/ws/agent `
  -OutputDir .\dist\agent `
  -LongTermStartup 否 `
  -ScanIntervalSeconds 2 `
  -ReconnectSeconds 5 `
  -MaxDownloadBytes 268435456

参数说明:

  • -Server:Agent 要连接的 WebSocket 地址
  • -OutputDir:生成 EXE 的输出目录
  • -LongTermStartup:是 或 否
  • -ScanIntervalSeconds:磁盘状态上报间隔
  • -ReconnectSeconds:断线重连间隔
  • -MaxDownloadBytes:单文件读取上限,默认 256 MB

默认输出:

dist\agent\AutoDetectorAgent.exe

使用方式

  1. 启动 Server
  2. 浏览器访问后台并登录
  3. 在目标 Windows 机器上运行 AutoDetectorAgent.exe
  4. 等设备出现在左侧在线列表
  5. 选择设备和磁盘后开始文件管理

支持的主要操作:

  • 浏览目录
  • 下载文件
  • 编辑文本文件
  • 新建文本文件
  • 删除文件或目录
  • 断开设备
  • 执行远程命令
  • 智能清理分析
  • 模型配置与连接测试

智能清理说明

  • 智能清理会调用 Agent 的 storage_scan 命令
  • 扫描阶段是只读的,不会自动删除
  • 绿灯项通常是缓存或临时文件,可直接清理
  • 黄灯项和红灯项建议先打开目录人工确认
  • 如果模型配置为空,页面仍会展示本地规则分析结果
  • 如果模型服务不兼容 POST /v1/chat/completions,需要按实际协议调整 src/storage-assistant.js

日志

Agent 日志路径:

%APPDATA%\AutoDetector\tray-agent.log

如果开启长期启动,Agent 安装位置为:

%LOCALAPPDATA%\AutoDetector\AutoDetectorAgent.exe

排障

  • 后台能打开但没有设备:确认 Agent 的 Server WebSocket 地址填写正确
  • 设备频繁掉线:检查目标机器网络、日志文件,以及 --agent-timeout-ms 是否过小
  • 智能清理很慢:目标机器目录很多时扫描可能持续较久,反向代理要允许较长超时
  • 模型测试失败:优先检查地址、模型 ID、API Key,以及接口是否兼容 OpenAI 格式
  • 无法覆盖生成 Agent:通常是旧的 AutoDetectorAgent.exe 仍在运行

安全提示

这个项目具备远程文件管理和命令执行能力,不建议直接裸露到公网。至少应做到:

  • 使用强密码
  • 仅在可信网络中使用
  • 按需限制来源 IP
  • 谨慎保管生成后的 Agent 程序

About

一个远程文件管理器。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages