DSH HUB
HomePlugin StoreRankingsPublish Guide
Plugin source
Back to catalog

YinjiangCN /

dsh-plugin-ftp-server

Verified

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

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@498a522f

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

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

APIPublish GuideAbout
—/ 5

No ratings yet

Verified DSH bundle

Commit 498a522f91dc

Community comments

No comments yet. Be the first to write one.