BuvkB/dsh-ugreen-nas ↗★ 0

dsh-ugreen-nas

UGREEN NAS OpenCLI connector for DeepSeek Harness: scoped access-token auth over HTTPS, permission-aware tools covering the full 70-permission surface (files, storage, tasks, docker, downloads, apps, control panel).

包名
dsh-ugreen-nas
兼容性
待验证
Harness 依赖范围
^0.1.0-0 || ^0.2.0-0 || ^0.2.1-0
版本
0.3.4
许可证
MIT
最近更新
2026年10月31日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add dsh-ugreen-nas

dsh-ugreen-nas

dsh-ugreen-nas

在 DeepSeek Harness 里直接管理绿联 NAS:文件、Docker、下载、应用、存储和系统状态,全部变成对话里能调的工具。

特点

  • 覆盖完整:59 个工具覆盖 UGOS Pro 访问令牌的全部 70 项权限(8 个大类),连服务端流式的应用安装/卸载/更新和全局搜索也支持。
  • 权限即边界:用 NAS 控制面板签发的「访问令牌」连接,不碰账号密码、不走 SSH;令牌没勾的能力,对应工具直接不注册。
  • 只读开关:mode=readonly 一键只保留只读工具;删除、卸载、停机类操作带【写/危险操作】标注,逐步确认交给 DSH 的工具审批。
  • 状态可见:设置页实时显示 8 个大类的「已授予 / 未授予」,一键重新探测。

设置页

快速开始

  1. 在 NAS「控制面板 → 账号 → 访问令牌」创建令牌,按需勾选权限。

  2. 安装插件:

    dsh plugin --profile web add dsh-ugreen-nas   # npm 包,推荐
    

    或从源码装:clone 本仓库 → npm install && bash scripts/build.sh → 插件管理页选本地目录。

  3. 「设置 → 插件 → 绿联 NAS」填入 NAS 地址和访问令牌,保存后点「测试连接」。

配置默认说明
endpoint—NAS 地址;裸 IP 自动补 https://:9443,也支持 UGREENlink / DDNS
accessToken—访问令牌(ugpoa_v1 开头),只存在本机设置,不回显
modefullfull 注册全部工具;readonly 只注册只读工具
timeoutMs15000单次请求超时(毫秒)
rejectUnauthorizedfalse自签证书保持关闭

能做什么

大类典型操作
文件读写文件、建目录、复制/移动/改名/删除、回收站恢复、标签、配额
Docker容器启停与日志、Compose 项目全生命周期、镜像搜索与拉取、端口/目录/独显占用检查
下载HTTP 下载任务的创建、暂停、恢复、重试、移除
应用应用中心的安装/卸载/更新、启动/停用
存储磁盘、存储池、卷状态,S.M.A.R.T. 健康诊断
任务CPU/内存/GPU/网络/磁盘/卷实时指标,服务与进程占用
控制面板系统版本、网络配置、硬件(风扇/UPS)、账号与用户组
全局搜索按名称、类型、大小、时间全盘搜文件

全部 59 个工具名

大类工具
连接ugreen_connection_test
文件ugreen_file_stat · list · read · write · mkdir · share_mkdir · rename · move · delete · restore · chtimes · tag_set · tag_link · tag_list · tag_delete · quota(均带 ugreen_ 前缀)
存储ugreen_storage_info · ugreen_storage_smart
任务ugreen_task_overview · ugreen_task_metrics
应用ugreen_app_status · list · install · uninstall · update · start · stop(均带 ugreen_ 前缀)
Dockerugreen_docker_list · logs · start · stop · restart · compose_list · compose_logs · compose_create · compose_start · compose_stop · compose_restart · compose_delete · image_search · image_list · image_pull · app_usage · app_rebuild · check
下载ugreen_download_list · create · pause · resume · retry · remove(均带 ugreen_ 前缀)
控制面板ugreen_system_info · user_list · user_create · group_add_members · hardware_info · network_info
全局搜索ugreen_search

权限怎么算

  • NAS 端令牌按 8 个大类勾选,共 70 项小类。插件激活时逐大类探测一次:没授予的大类不注册工具;细到单项的校验在 NAS 端,比如同一大类勾了删除没勾写入,调用时会返回 403 并指名缺哪项。
  • 改权限要在 NAS 端重建令牌,插件侧重新探测即可,不用改配置。
  • 70 项明细见文末附录。

安全

  • 访问令牌等于它勾选的权限:日常建议只勾 read(只读令牌),需要写操作再单独签发。
  • 令牌只存在本机插件设置里(secret 字段),不要写进代码、日志或对话。
  • Files 权限按账号授权,不支持按文件夹限权:勾了 Files 的 read,令牌就能读到该账号可见的所有文件。
  • NAS 用自签证书时保持「校验 HTTPS 证书」关闭;换可信证书后再打开。

文档

  • 协议逆向与流式帧格式、protobuf 提取方法:docs/ugreen-opencli-protocol.md
  • 开发:npm install && bash scripts/build.sh,回归 node test/smoke.test.mjs

附录

70 项权限总表

UGOS Pro 的访问令牌按 8 个官方应用分成 8 个大类,创建令牌时按大类勾选:

大类(应用)小计readwriteexecutedelete
App Center(应用中心)72221
Control Panel(控制面板)86200
Files(文件管理)154812
Universal Search(全局搜索)11000
Storage(存储管理)44000
Task Manager(任务管理器)99000
Docker2010271
Downloads(下载中心)61401
合计703718105

70 项逐条明细

大类权限操作说明
App Centerapp_detailread查看应用、版本与运行状态
App Centerapp_search_and_available_updatesread搜索应用与可用更新
App Centerapp_install_streamwrite安装指定应用
App Centerapp_uninstall_streamdelete卸载指定应用
App Centerapp_update_streamwrite更新指定应用
App Centerapp_stopexecute停用指定应用
App Centerapp_startexecute启动指定应用
Control Panelctl_user_group_listread查看账号与用户组列表
Control Panelctl_user_createwrite创建普通账号并设置密码
Control Panelctl_group_add_memberswrite向用户组添加成员
Control Panelctl_hardware_powerread查看风扇/电源/UPS 等硬件设置
Control Panelctl_os_identityread查看设备型号与系统版本
Control Panelctl_os_update_statusread查询系统更新状态与可用版本
Control Panelctl_network_generalread查看网关、DNS、代理等通用网络配置
Control Panelctl_network_connectionread查看网卡状态与 IP 配置
Filesfilemgr_list_and_attrread浏览文件列表与属性
Filesfilemgr_read_and_downloadread读取与下载文件内容
Filesfilemgr_uploadwrite上传文件
Filesfilemgr_create_dirwrite新建文件夹
Filesfilemgr_create_share_dirwrite新建共享文件夹
Filesfilemgr_chtimeswrite修改文件或目录时间戳
Filesfilemgr_cp_move_pathwrite复制或移动文件
Filesfilemgr_renamewrite重命名文件
Filesfilemgr_deletedelete删除文件
Filesfilemgr_recover_from_recyclewrite从回收站恢复文件
Filesfilemgr_get_quotaread查询空间配额
Filesfilemgr_set_quotaexecute设置空间配额
Filesfilemgr_get_tagread获取标签信息
Filesfilemgr_add_tagwrite添加或设置标签
Filesfilemgr_delete_tagdelete删除标签
Universal Searchtitle_search_taskread按名称/类型/大小/时间搜索文件
Storagestorage.disk.listread查看内部磁盘列表
Storagestorage.pool.listread查看存储池列表
Storagestorage.disk.smart.allread读取所有硬盘 S.M.A.R.T. 诊断
Storagestorage.volume.listread查看卷列表
Task Managertaskmgr_get_run_overviewread查看 CPU/内存/风扇/网络/磁盘总览
Task Managertaskmgr_get_cpu_metricread查看 CPU 占用与温度
Task Managertaskmgr_get_gpu_metricread查看 GPU 占用
Task Managertaskmgr_get_mem_metricread查看内存占用
Task Managertaskmgr_get_net_trafficread查看网络收发速率
Task Managertaskmgr_get_disk_metricread查看硬盘读写速率
Task Managertaskmgr_get_volume_metricread查看卷读写速率
Task Managertaskmgr_get_service_resourceread查看各服务资源占用
Task Managertaskmgr_get_process_resourceread查看各进程资源占用
Dockerdocker_image_searchread在镜像仓库搜索镜像
Dockerdocker_image_listread查看本地镜像
Dockerdocker_image_pullwrite拉取指定镜像
Dockerdocker_container_listread查看容器与运行状态
Dockerdocker_container_startexecute启动容器
Dockerdocker_container_stopexecute停止容器
Dockerdocker_container_restartexecute重启容器
Dockerdocker_container_logsread查看容器日志
Dockerdocker_compose_project_createwrite创建 Compose 项目
Dockerdocker_compose_project_listread查看 Compose 项目
Dockerdocker_compose_project_logsread查看 Compose 项目日志
Dockerdocker_compose_project_startexecute启动 Compose 项目
Dockerdocker_compose_project_stopexecute停止 Compose 项目
Dockerdocker_compose_project_restartexecute重启 Compose 项目
Dockerdocker_compose_project_deletedelete删除 Compose 项目及容器
Dockerdocker_app_discrete_gpu_checkread检查容器应用的独显占用
Dockerdocker_container_port_checkread检查容器端口占用
Dockerdocker_container_directory_checkread检查容器目录占用
Dockerdocker_app_usageread查看容器应用资源占用
Dockerdocker_app_rebuildexecute按配置强制重建容器应用
Downloadsdownload_task_createwrite从链接或种子创建下载任务
Downloadsdownload_task_getread查看下载任务状态与进度
Downloadsdownload_task_pausewrite暂停下载任务
Downloadsdownload_task_resumewrite恢复下载任务
Downloadsdownload_task_retry_failedwrite重试失败的下载任务
Downloadsdownload_task_removedelete移除下载任务(保留文件)