dsh-plugin-verified-search
f0909172434
Verified current-source search workflow for DeepSeek Harness
PROJECT TOPICS
PROJECT README
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.
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..) is blocked, and the root itself cannot be deleted or renameddsh plugin --profile web add github:YinjiangCN/dsh-plugin-ftp-server
Then restart dsh. Open Settings → FTP 服务, fill in the form and click 启动服务.
| 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.
/ 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).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).
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。