zdir
zdir
官网

- 官网:https://www.zdir.pro/
- 演示:https://soft.xiaoz.org/#/
- 购买授权:https://shop.xiuping.net/zdir/index
介绍
Zdir是一款使用使用Golang + Vue3开发的多功能私有存储程序,集成了文件索引、在线预览和分享功能,支持WebDAV和离线下载(即将支持),非常适合安装在NAS设备或大容量VPS上,是个人、工作室和小团队分享文件的理想选择。


定价

演示







演示

起源
📌2018年
许多年前,公司运维部门利用nginx搭建了一个文件索引平台,用于分享常用软件供员工下载。然而,nginx的索引功能极为有限,界面简陋、功能单一。xiaoz作为一个喜欢折腾VPS的爱好者,我萌生了自建文件分享平台的想法。经过尝试Fancy Index、PHP Directory Lister、h5ai等解决方案,我依然不满意。最终在2018年,我用PHP正式开发了Zdir 1.x。
2021年,
2.x.x版本正式结束了其生命周期,至此我们不再维护PHP版本的Zdir!
📌2022年
随着时间的推移,2.x.x版本的问题日益凸显,且由于PHP的局限性难以解决。于是,在2022年,我采用新技术Golang和Vue3进行了全面重构,发布了全新的3.x.x版本。
📌2024年
今天,我们自豪地宣布Zdir 4.x版本的到来。4.x在3.x.x版本的基础上进行了升级优化,前端界面重新布局和设计,部分风格参考了Alist,整体依旧以简洁实用为主。
从4.x版本开始,我们将不再开源。之前的源码仍然可以在Github上找到:https://github.com/helloxz/zdir
安装
1、官方提供的方法
https://doc.xiaoz.top/web/#/10/38

离线镜像
针对国内部分用户无法拉取镜像的问题,我们准备了离线镜像可供使用。Zdir 4离线镜像下载地址请前往:https://soft.xiaoz.org/#/zdir/docker/zdir4.tar?type=file 使用方法
- 先下载离线镜像,如
zdir4.tar - 然后导入:
docker load -i zdir4.tar - 最后参考下面的方法继续安装
Docker安装
国内网络环境
如果您是国内网络环境,无法拉取到Docker镜像的情况下,请使用下面的命令:
1docker run -d --name="zdir" \
2 -v /opt/zdir/data:/opt/zdir/data \
3 -v /data/public:/opt/zdir/data/public \
4 -v /data/private:/opt/zdir/data/private \
5 -p 6080:6080 \
6 --restart=always \
7 pub.tcp.mk/helloz/zdir:4
pub.tcp.mk仅可拉取
helloz的镜像,无法拉取其它镜像,不能用于加速使用!
海外网络环境
1docker run -d --name="zdir" \
2 -v /opt/zdir/data:/opt/zdir/data \
3 -v /data/public:/opt/zdir/data/public \
4 -v /data/private:/opt/zdir/data/private \
5 -p 6080:6080 \
6 --restart=always \
7 helloz/zdir:4
使用Docker Compose安装(推荐💖)
新建一个docker-compose.yaml文件,内容如下:
1version: '3.3'
2services:
3 zdir:
4 container_name: zdir
5 volumes:
6 - '/opt/zdir/data:/opt/zdir/data'
7 - '/data/public:/opt/zdir/data/public'
8 - '/data/private:/opt/zdir/data/private'
9 ports:
10 - '6080:6080'
11 restart: always
12 image: 'helloz/zdir:4'
然后输入docker-compose up -d进行启动
容器路径说明
- 第二列
/opt/zdir/data为容器路径,里面保存了Zdir数据库和配置等信息,请勿修改 - 第二列
/opt/zdir/data/public为容器内Zdir公有目录,请勿修改 - 第二列
/opt/zdir/data/private为容器内Zdir私有目录,请勿修改 - 第一列目录为您的主机目录,可自行修改

安装完毕后请自行检查您第一列挂载目录下是否存在数据,如果不存在数据,可能没有正确挂载,后期升级容器镜像可能会有数据丢失风险!!!
初始化
安装完毕后打开http://IP:6080完成初始化操作。
2、自己实际安装过程(推荐💖)
2025年9月15日更新
1docker load -i zdir4.tar
2
3
4
5[root@docusaurus-wiki ~]#docker load -i zdir4.tar
6[root@docusaurus-wiki ~]#docker images |head -n1;docker images|grep zdir
7REPOSITORY TAG IMAGE ID CREATED SIZE
8helloz/zdir 4 3f01de5e4b0a 46 hours ago 35.2MB
9
10
11
12
13cd /root
14mkdir zdir
15cd zdir
16
17cat >> /root/zdir/docker-compose.yaml << EOF
18version: '3.3'
19services:
20 zdir:
21 container_name: zdir
22 volumes:
23 - '/opt/zdir/data:/opt/zdir/data'
24 - '/data/public:/opt/zdir/data/public'
25 - '/data/private:/opt/zdir/data/private'
26 ports:
27 - '6080:6080'
28 restart: always
29 image: 'pub.tcp.mk/helloz/zdir'
30
31EOF
容器路径说明
- 第二列
/opt/zdir/data为容器路径,里面保存了Zdir数据库和配置等信息,请勿修改 - 第二列
/opt/zdir/data/public为容器内Zdir公有目录,请勿修改 - 第二列
/opt/zdir/data/private为容器内Zdir私有目录,请勿修改 - 第一列目录为您的主机目录,可自行修改

安装完毕后请自行检查您第一列挂载目录下是否存在数据,如果不存在数据,可能没有正确挂载,后期升级容器镜像可能会有数据丢失风险!!!
😉注意:
当前我是没创建本地数据目录的,docker会自动帮我们创建的应该是。(是会自动创建的)
这里进行测试:
1[root@docusaurus-wiki ~]#cd zdir/
2[root@docusaurus-wiki zdir]#ls
3docker-compose.yaml
4[root@docusaurus-wiki zdir]#docker-compose up -d
5[+] Building 0.0s (0/0) docker:default
6[+] Running 2/2
7 ✔ Network zdir_default Created 0.1s
8 ✔ Container zdir Started 0.1s
9[root@docusaurus-wiki zdir]#docker-compose ps
10NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
11zdir helloz/zdir:4 "/usr/sbin/run.sh" zdir 13 seconds ago Up 11 seconds 0.0.0.0:6080->6080/tcp
12[root@docusaurus-wiki zdir]#
13
14
15
16[root@docusaurus-wiki zdir]#docker ps -l
17CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
183e5865c07b1e helloz/zdir:4 "/usr/sbin/run.sh" 38 seconds ago Up 36 seconds 0.0.0.0:6080->6080/tcp zdir
19[root@docusaurus-wiki zdir]#ls /opt/zdir/data/
20config db logs private public
21[root@docusaurus-wiki zdir]#ls /data/public/
22[root@docusaurus-wiki zdir]#ls /data/private/
23[root@docusaurus-wiki zdir]#
访问:
http://47.100.215.163:6080

- 初始化成功

- 小试牛刀

使用
填写授权信息(已解决)




需求:我可以更改zir数据目录吗?(是可以的)(已解决)
- 当前配置
1[root@docusaurus-wiki ~]#mkdir /root/zdir
2[root@docusaurus-wiki ~]#vim docker-compose.yaml
3version: '3.3'
4services:
5 zdir:
6 container_name: zdir
7 volumes:
8 - '/opt/zdir/data:/opt/zdir/data'
9 - '/data/public:/opt/zdir/data/public'
10 - '/data/private:/opt/zdir/data/private'
11 ports:
12 - '6080:6080'
13 restart: always
14 image: 'helloz/zdir:4'
15
16
17[root@docusaurus-wiki ~]#docker ps -l
18CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
193e5865c07b1e helloz/zdir:4 "/usr/sbin/run.sh" 2 hours ago Up 2 hours 0.0.0.0:6080->6080/tcp zdir
20[root@docusaurus-wiki ~]#cd zdir/
21[root@docusaurus-wiki zdir]#ls
22docker-compose.yaml
23[root@docusaurus-wiki zdir]#docker-compose ps
24NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
25zdir helloz/zdir:4 "/usr/sbin/run.sh" zdir 2 hours ago Up 2 hours 0.0.0.0:6080->6080/tcp
26[root@docusaurus-wiki zdir]#
- 我现在想更改docker 容器的数据目录,可以吗?(应该是可以的)
进行测试:
1#停止容器
2[root@docusaurus-wiki zdir]#docker-compose down
3[+] Running 2/2
4 ✔ Container zdir Removed 10.7s
5 ✔ Network zdir_default Removed
6
7
8
9 #重新编辑配置文件
10 [root@docusaurus-wiki ~]#vim docker-compose.yaml
11version: '3.3'
12services:
13 zdir:
14 container_name: zdir
15 volumes:
16 - '/opt/zdir/data:/opt/zdir/data'
17 - '/opt/zdir/zdir-data/public:/opt/zdir/data/public'
18 - '/opt/zdir/zdir-data/private:/opt/zdir/data/private'
19 ports:
20 - '6080:6080'
21 restart: always
22 image: 'helloz/zdir:4'
23##呃呃呃,作者这里目录定义有点不太友好哈哈……
24
25
26##创建目录及移动文件
27mkdir -p /opt/zdir/zdir-data
28mv /data/public/ /opt/zdir/zdir-data/
29mv /data/private/ /opt/zdir/zdir-data/
30
31
32
33##启动容器
34[root@docusaurus-wiki ~]#cd zdir/
35[root@docusaurus-wiki zdir]#docker-compose up -d
36[+] Building 0.0s (0/0) docker:default
37[+] Running 1/1
38 ✔ Container zdir Started 0.0s
39[root@docusaurus-wiki zdir]#
40[root@docusaurus-wiki zdir]#docker ps -l
41CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
426e0e0a0c5b7f helloz/zdir:4 "/usr/sbin/run.sh" About a minute ago Up 19 seconds 0.0.0.0:6080->6080/tcp zdir
43[root@docusaurus-wiki zdir]#
- 完美,符合预期

待解决
反向代理失败
2024年7月4日测试
- 配置nginx
vim /etc/nginx/nginx.conf

1nginx -s reload
- 访问失败


帮助
- Zdir官网:https://www.zdir.pro/zh/
- Zdir帮助文档:https://doc.xiaoz.top/web/#/10/37
- QQ群:283604395
如需技术支持请联系微信:
xiaozme
https://doc.xiaoz.top/web/#/10/37

更新日志

4.1.5 - 20240920
- 新增:支持HTML小工具,当HTML文件名为
tool_前缀时(比如:tool_xxx.html),Zdir将自动渲染并加载,因此你可以自行编写HTML小工具并集成到Zdir中 - 新增:支持快捷添加文件描述
- 新增:支持
.m3u和.m3u8播放 - 优化:文件大小为0时上传失败的错误提示
- 优化:文件创建(当文件无后缀时识别为目录)
- 优化:视频播放器由西瓜播放器修改为Dplayer
- 优化:不支持的视频格式不再显示播放器并给出提示说明
- 优化:部分错误提示
- 修复:部分
zip压缩包中含有中文,解压乱码的情况 - 修复:
.tar.gz部分条件下解压失败的情况
更新预告
- Office预览
- PWA支持
- AI绘图直接保存到Zdir(待定)
- 修复手机音乐列表模式下选中歌曲并自动切换下一首歌曲时,原歌曲还会被选中问题
- 首页加载过渡动画
- 在线升级
- 缩略图
- 单个音乐自动下一首(待定)
- 服务端压缩功能
- 音乐模式支持选择文件夹
- 文本预览支持更多编码格式
- 支持挂载第三方存储(S3/WebDAV/SFTP/FTP)
- 多用户
- 视图切换
- 如果文本超过5M,将不再进行预览
4.x版本功能
- 文件索引
- 文件预览(支持图片、文档、音乐、视频等预览)
- 私有文件
- 私有文件分享
- 文件管理(上传、下载、删除、重命名)
- 图片预览
- API支持
- WebDAV服务端支持
- 全局文件搜索
- 前后台一体化
- 文件修改
- 文件移动、复制
- 多语言
- 离线下载(即将支持)

常见问题

更新方法
:::warning
不同的安装方式更新方法有所不同,请根据自己的安装方式选择对应的更新方法!
注意:更新完毕后请关闭所有Zdir浏览器窗口,然后重新打开,不然浏览器可能有缓存!
:::
Docker更新方式
- 先停用当前容器
docker stop zdir - 拉取新的镜像
docker pull helloz/zdir:4 - 重新创建容器,注意挂载路径和之前的容器保持一致
1docker run -d --name="zdir" \
2 -v /opt/zdir/data:/opt/zdir/data \
3 -v /data/public:/opt/zdir/data/public \
4 -v /data/private:/opt/zdir/data/private \
5 -p 6080:6080 \
6 --restart=always \
7 helloz/zdir:4
如果是Docker Compose安装方式,方法如下:
- 停止当前容器
docker-compose down - 拉取新的镜像:
docker-compose pull - 重新启动容器
docker-compose up -d
群晖用户
linux更新方式

