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

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

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

更多界面截图与完整文档见 GitHub 仓库:https://github.com/JunWan666/dufs
该镜像已经发布为多架构镜像:
linux/amd64linux/arm64tannic666/dufs:latesttannic666/dufs:v1.0.1以只读模式共享当前目录:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest /data
打开浏览器访问:
http://127.0.0.1:5000/
允许上传、删除、搜索、目录打包下载和文件编辑:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest /data -A
启用后即可使用顶部工具栏上传文件,或直接把文件拖入浏览器窗口上传(拖拽时页面会显示目标目录提示)。
创建一个拥有完整权限的管理员账号,以及一个只读的访客账号:
docker run --rm -p 5000:5000 -v "$PWD:/data" tannic666/dufs:latest /data \
-A \
-a admin:admin@/:rw \
-a guest:guest@/
打开 UI 后可使用以下账号登录:
admin / admin
guest / 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:c04746570…
Size
2.9 MB
Last updated
2 days ago
docker pull tannic666/dufs