Files

Dufs - 文件共享服务器

Dufs 是一个轻量级的文件共享服务器,支持 WebDAV、上传、下载、搜索等功能。

服务信息

项目
镜像 sigoden/dufs
版本 v0.45.0
端口 5000
路径前缀 /dufs

目录结构

dufs/
├── config/
│   └── config.yaml      # Dufs 配置文件
├── env.cfg               # 环境变量配置
└── stack.yml             # Docker Compose 编排文件

部署前准备

  1. 创建数据目录:
mkdir -pv /data/volumes/dufs/data
mkdir -pv /data/mygit/config/dufs
  1. 修改 ./config/config.yaml 中的配置,并将其复制到 /data/mygit/config/dufs 目录中:
cp ./config/config.yaml /data/mygit/config/dufs/

部署命令

拉取镜像

docker compose -p dufs --env-file ./dufs/env.cfg -f ./dufs/stack.yml pull

启动服务

docker compose -p dufs --env-file ./dufs/env.cfg -f ./dufs/stack.yml up -d

配置说明

环境变量 (env.cfg)

变量 说明 默认值
IMAGE_TAG_VER 镜像版本号 v0.45.0
IMAGE_TAG 镜像完整标签 sigoden/dufs:${IMAGE_TAG_VER}
Volumes_Path 数据卷路径 /data/volumes/dufs
Config_Path 配置文件路径 /data/mygit/config

应用配置 (config/config.yaml)

基本设置

  • serve-path: 服务根目录,默认为 .(容器内 /data
  • bind: 绑定地址,0.0.0.0 表示监听所有接口
  • port: 服务端口,默认 5000
  • path-prefix: URL 路径前缀,设为 /dufs

隐藏文件规则

以下文件/目录在列表中不可见:

  • tmp.git.svn.DS_Store(系统/版本控制目录)
  • *.log*.lock*.db(临时/数据库文件)

访问控制auth

用户 密码 权限范围
admin admin / 目录读写
user pass /backups 读写,/shared 只读
匿名 - / 只读

⚠️ 安全提示:请在生产环境中修改默认用户名和密码!

功能开关

功能 状态 说明
allow-upload 允许上传文件
allow-delete 允许删除文件
allow-search 允许搜索文件
allow-symlink 允许符号链接
allow-archive 允许打包下载
enable-cors 启用跨域请求
render-index 渲染 index.html
render-try-index 尝试渲染 index.html
render-spa SPA 模式

其他设置

  • compress: 压缩级别为 low
  • log-format: 访问日志格式
  • log-file: 日志文件路径 ./dufs.log

数据卷映射

容器路径 宿主机路径 说明
/data ${Volumes_Path}/data 共享文件数据
/config ${Config_Path}/dufs 配置文件(只读)
/etc/timezone /etc/timezone 时区(只读)
/etc/localtime /etc/localtime 本地时间(只读)

访问方式

启动服务后,通过以下方式访问:

  • Web UI: http://<host-ip>:5000/dufs/
  • WebDAV: http://<host-ip>:5000/dufs/