forked from DevOps/deploy.stack
3.2 KiB
3.2 KiB
Dufs - 文件共享服务器
Dufs 是一个轻量级的文件共享服务器,支持 WebDAV、上传、下载、搜索等功能。
服务信息
| 项目 | 值 |
|---|---|
| 镜像 | sigoden/dufs |
| 版本 | v0.45.0 |
| 端口 | 5000 |
| 路径前缀 | /dufs |
目录结构
dufs/
├── config/
│ └── config.yaml # Dufs 配置文件
├── env.cfg # 环境变量配置
└── stack.yml # Docker Compose 编排文件
部署前准备
- 创建数据目录:
mkdir -pv /data/volumes/dufs/data
mkdir -pv /data/mygit/config/dufs
- 修改
./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/