dshbase

插件目录 / Developer / dsh-plugin-ftp-server

dsh-plugin-ftp-server

已验证 · 实测可装 YinjiangCN

✓ 持续维护 基于 5 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
—语言
2026-08-15最近推送
跨平台平台

功能简介

Configurable FTP file server for DeepSeek Harness with a browser settings panel (zero-dependency FTP core).

✅
我们的评价
可用 — 实测通过,早期项目

Configurable FTP file server for DeepSeek Harness with a browser settings panel (zero-dependency FTP core). 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-plugin-ftp-server

Run a configurable FTP file server inside DeepSeek Harness, managed from a browser settings panel. Host any directory over plain FTP — browse, upload, download, rename and delete files with any FTP client.

⚠️ Plain FTP has no TLS: credentials and data travel in cleartext. Use it on trusted networks only.

Features

  • Zero-dependency FTP server core (pure Node built-ins), spawned as a child process of the harness
  • Full command support: USER/PASS, PWD/CWD/CDUP, LIST/NLST/MLSD, RETR/STOR/APPE/STOU, DELE/MKD/RMD, RNFR/RNTO, SIZE/MDTM/REST (resume), PASV/EPSV/PORT, FEAT/STAT/ABOR/NOOP
  • Chrooted to the shared root — path escape (..) is blocked, and the root itself cannot be deleted or renamed
  • Single account + password, or anonymous mode
  • Browser panel (Settings → FTP 服务): configure host/port/root/credentials, start/stop, live status (PID, uptime), shared-root listing and server log
  • Idle timeout (180 s), crash detection, automatic child-process cleanup when the plugin is stopped

Install

dsh plugin --profile web add github:YinjiangCN/dsh-plugin-ftp-server

Then restart dsh. Open Settings → FTP 服务, fill in the form and click 启动服务.

Usage

Field Default Meaning
监听地址 (host) 0.0.0.0 Bind address
端口 (port) 2121 Control port
共享根目录 (root) workspace/ftp-root Directory shared over FTP (created on start)
用户名 (user) ftp Login account (ignored in anonymous mode)
密码 (pass) (empty) Login password
允许匿名 (anonymous) off Allow anonymous login

Clients connect with ftp://<user>@<host>:<port>. The password is kept in memory only; it is passed as a child-process argument and never written to disk.

Security notes

  • Do not set 共享根目录 to / unless you really want to share the whole filesystem — anyone with the credentials can read/modify every file (the server runs with the harness user's privileges).
  • Plain FTP is unencrypted; prefer an internal/trusted network.
  • The server supports one account; for multiple users run multiple instances on different ports.

Development

lib/index.js      host half — FTP process management + Typert Remote service `ftpServer`
lib/client.js     browser half — settings panel (module-loader bundle)
lib/ftp-server.js standalone FTP server (spawned by the host half)
cordis.patch.yml  loader patch mounting the host half

The host half registers the ftpServer Remote service; the panel calls status/start/stop/listRoot through the Typert Gateway (host-side SRC-mode discovery with hand-written strict client descriptors).

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-plugin-ftp-server」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:YinjiangCN/dsh-plugin-ftp-server

Headless(CLI)profile:

dsh plugin --profile headless add github:YinjiangCN/dsh-plugin-ftp-server

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →