轻量级网页文件管理器与 WebDAV 服务器 · 中文优先界面
基于 sigoden/dufs 二次开发,重做了整套中文界面,新增拖拽上传范围提示等交互优化。程序编译为单个静态二进制,镜像基于 scratch,零运行时依赖。
文件列表:卡片式布局、顶部工具栏、路径导航与权限状态徽章。

拖拽上传:把文件拖进浏览器窗口时,页面会显示浅色范围提示层,并标明文件将保存到哪个目录。

移动端与登录:窄屏自动重排,登录弹窗支持管理员与访客账号。

更多界面截图与完整文档见 GitHub 仓库:https://github.com/JunWan666/dufs
该镜像已经发布为多架构镜像:
linux/amd64linux/arm64tannic666/dufs:latesttannic666/dufs:v1.1.0tannic666/dufs:v1.0.0镜像已内置默认端口、数据目录与权限开关,不需要记任何参数:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest
打开浏览器访问 http://127.0.0.1:5000/,即可浏览、上传、下载、搜索和打包下载文件。
在 NAS / Docker 面板(飞牛 fnOS、群晖、Portainer 等)里创建容器时:
5000 与存储映射 /data 会被面板自动识别,无需手填启用后即可使用顶部工具栏上传文件,或直接把文件拖入浏览器窗口上传(拖拽时页面会显示目标目录提示)。
公网环境建议先设置密码,再对外映射端口。
镜像内置 CMD ["/data", "-A"],默认已开启上传、删除、搜索与打包下载,以下两种场景才需要自己填命令:
只读分享(禁止任何修改),命令栏填 /data 覆盖默认值:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest /data
不想用网页初始化、要直接固定账号密码:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest \
-a admin:你的密码@/:rw \
-a guest:你的密码@/
用 -a 配好账号后,页面不会再出现「设置密码」提示,直接用该账号登录即可(admin 可读写,guest 只读)。
-a, --auth 选项用于控制不同账号可以访问的路径和权限:
-a admin:admin@/:rw
-a guest:guest@/
-a user:pass@/docs:rw,/public
-a @/
规则说明:
user:pass@/path:rw 表示该账号对指定路径拥有读写权限。user:pass@/path 表示该账号对指定路径只有只读权限。@/path 表示允许匿名只读访问指定路径。:rw 权限时,仍然需要通过 -A 或 --allow-upload 启用上传功能后才可以上传文件。-A, --allow-all 允许上传、删除、搜索、目录打包下载和哈希计算
--allow-upload 允许上传文件和文件夹
--allow-delete 允许删除文件和文件夹
--allow-search 允许搜索文件和文件夹
--allow-archive 允许将文件夹打包下载
--hidden <patterns> 在文件列表中隐藏匹配的名称
--path-prefix <path> 在指定 URL 前缀下提供服务
--render-spa 启用单页应用 fallback
--enable-cors 启用 CORS
Dufs 支持 PROPFIND、MKCOL、COPY、MOVE、LOCK、UNLOCK 等 WebDAV 方法,可以配合常见 WebDAV 客户端使用。
curl http://127.0.0.1:5000/__dufs__/health
预期响应:
{"status":"OK"}
/bin/dufs。scratch,仅包含静态链接后的可执行文件。-v 将需要共享的目录挂载到容器内。Content type
Image
Digest
sha256:8db9d9f39…
Size
3 MB
Last updated
29 days ago
docker pull tannic666/dufs