快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」

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
https://doc.xiaoz.top/web/#/10/38

针对国内部分用户无法拉取镜像的问题,我们准备了离线镜像可供使用。Zdir 4离线镜像下载地址请前往:https://soft.xiaoz.org/#/zdir/docker/zdir4.tar?type=file 使用方法
zdir4.tardocker load -i zdir4.tar国内网络环境
如果您是国内网络环境,无法拉取到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:4pub.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.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完成初始化操作。
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







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]# 进行测试:
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日测试
vim /etc/nginx/nginx.conf

1nginx -s reload

如需技术支持请联系微信:
xiaozme
https://doc.xiaoz.top/web/#/10/37


tool_前缀时(比如:tool_xxx.html),Zdir将自动渲染并加载,因此你可以自行编写HTML小工具并集成到Zdir中.m3u和.m3u8播放zip压缩包中含有中文,解压乱码的情况.tar.gz部分条件下解压失败的情况

:::warning
不同的安装方式更新方法有所不同,请根据自己的安装方式选择对应的更新方法!
注意:更新完毕后请关闭所有Zdir浏览器窗口,然后重新打开,不然浏览器可能有缓存!
:::
docker stop zdirdocker pull helloz/zdir:41docker 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 downdocker-compose pulldocker-compose up -d日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白