zdir
zdir
官网
介绍
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镜像的情况下,请使用下面的命令:
docker run -d --name="zdir" \
-v /opt/zdir/data:/opt/zdir/data \
-v /data/public:/opt/zdir/data/public \
-v /data/private:/opt/zdir/data/private \
-p 6080:6080 \
--restart=always \
pub.tcp.mk/helloz/zdir:4
pub.tcp.mk仅可拉取
helloz
的镜像,无法拉取其它镜像,不能用于加速使用!
海外网络环境
docker run -d --name="zdir" \
-v /opt/zdir/data:/opt/zdir/data \
-v /data/public:/opt/zdir/data/public \
-v /data/private:/opt/zdir/data/private \
-p 6080:6080 \
--restart=always \
helloz/zdir:4
使用Docker Compose安装(推荐💖)
新建一个docker-compose.yaml
文件,内容如下:
version: '3.3'
services:
zdir:
container_name: zdir
volumes:
- '/opt/zdir/data:/opt/zdir/data'
- '/data/public:/opt/zdir/data/public'
- '/data/private:/opt/zdir/data/private'
ports:
- '6080:6080'
restart: always
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日更新
docker load -i zdir4.tar
[root@docusaurus-wiki ~]#docker load -i zdir4.tar
[root@docusaurus-wiki ~]#docker images |head -n1;docker images|grep zdir
REPOSITORY TAG IMAGE ID CREATED SIZE
helloz/zdir 4 3f01de5e4b0a 46 hours ago 35.2MB
cd /root
mkdir zdir
cd zdir
cat >> /root/zdir/docker-compose.yaml << EOF
version: '3.3'
services:
zdir:
container_name: zdir
volumes:
- '/opt/zdir/data:/opt/zdir/data'
- '/data/public:/opt/zdir/data/public'
- '/data/private:/opt/zdir/data/private'
ports:
- '6080:6080'
restart: always
image: 'pub.tcp.mk/helloz/zdir'
EOF
容器路径说明
- 第二列
/opt/zdir/data
为容器路径,里面保存了Zdir数据库和配置等信息,请勿修改 - 第二列
/opt/zdir/data/public
为容器内Zdir公有目录,请勿修改 - 第二列
/opt/zdir/data/private
为容器内Zdir私有目录,请勿修改 - 第一列目录为您的主机目录,可自行修改
安装完毕后请自行检查您第一列挂载目录下是否存在数据,如果不存在数据,可能没有正确挂载,后期升级容器镜像可能会有数据丢失风险!!!
😉注意:
当前我是没创建本地数据目录的,docker会自动帮我们创建的应该是。(是会自动创建的)
这里进行测试:
[root@docusaurus-wiki ~]#cd zdir/
[root@docusaurus-wiki zdir]#ls
docker-compose.yaml
[root@docusaurus-wiki zdir]#docker-compose up -d
[+] Building 0.0s (0/0) docker:default
[+] Running 2/2
✔ Network zdir_default Created 0.1s
✔ Container zdir Started 0.1s
[root@docusaurus-wiki zdir]#docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
zdir helloz/zdir:4 "/usr/sbin/run.sh" zdir 13 seconds ago Up 11 seconds 0.0.0.0:6080->6080/tcp
[root@docusaurus-wiki zdir]#
[root@docusaurus-wiki zdir]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e5865c07b1e helloz/zdir:4 "/usr/sbin/run.sh" 38 seconds ago Up 36 seconds 0.0.0.0:6080->6080/tcp zdir
[root@docusaurus-wiki zdir]#ls /opt/zdir/data/
config db logs private public
[root@docusaurus-wiki zdir]#ls /data/public/
[root@docusaurus-wiki zdir]#ls /data/private/
[root@docusaurus-wiki zdir]#
访问:
- 初始化成功
- 小试牛刀
使用
填写授权信息(已解决)
需求:我可以更改zir数据目录吗?(是可以的)(已解决)
- 当前配置
[root@docusaurus-wiki ~]#mkdir /root/zdir
[root@docusaurus-wiki ~]#vim docker-compose.yaml
version: '3.3'
services:
zdir:
container_name: zdir
volumes:
- '/opt/zdir/data:/opt/zdir/data'
- '/data/public:/opt/zdir/data/public'
- '/data/private:/opt/zdir/data/private'
ports:
- '6080:6080'
restart: always
image: 'helloz/zdir:4'
[root@docusaurus-wiki ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e5865c07b1e helloz/zdir:4 "/usr/sbin/run.sh" 2 hours ago Up 2 hours 0.0.0.0:6080->6080/tcp zdir
[root@docusaurus-wiki ~]#cd zdir/
[root@docusaurus-wiki zdir]#ls
docker-compose.yaml
[root@docusaurus-wiki zdir]#docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
zdir helloz/zdir:4 "/usr/sbin/run.sh" zdir 2 hours ago Up 2 hours 0.0.0.0:6080->6080/tcp
[root@docusaurus-wiki zdir]#
- 我现在想更改docker 容器的数据目录,可以吗?(应该是可以的)
进行测试:
#停止容器
[root@docusaurus-wiki zdir]#docker-compose down
[+] Running 2/2
✔ Container zdir Removed 10.7s
✔ Network zdir_default Removed
#重新编辑配置文件
[root@docusaurus-wiki ~]#vim docker-compose.yaml
version: '3.3'
services:
zdir:
container_name: zdir
volumes:
- '/opt/zdir/data:/opt/zdir/data'
- '/opt/zdir/zdir-data/public:/opt/zdir/data/public'
- '/opt/zdir/zdir-data/private:/opt/zdir/data/private'
ports:
- '6080:6080'
restart: always
image: 'helloz/zdir:4'
##呃呃呃,作者这里目录定义有点不太友好哈哈……
##创建目录及移动文件
mkdir -p /opt/zdir/zdir-data
mv /data/public/ /opt/zdir/zdir-data/
mv /data/private/ /opt/zdir/zdir-data/
##启动容器
[root@docusaurus-wiki ~]#cd zdir/
[root@docusaurus-wiki zdir]#docker-compose up -d
[+] Building 0.0s (0/0) docker:default
[+] Running 1/1
✔ Container zdir Started 0.0s
[root@docusaurus-wiki zdir]#
[root@docusaurus-wiki zdir]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e0e0a0c5b7f helloz/zdir:4 "/usr/sbin/run.sh" About a minute ago Up 19 seconds 0.0.0.0:6080->6080/tcp zdir
[root@docusaurus-wiki zdir]#
- 完美,符合预期
待解决
反向代理失败
2024年7月4日测试
- 配置nginx
vim /etc/nginx/nginx.conf
nginx -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服务端支持
- 全局文件搜索
- 前后台一体化
- 文件修改
- 文件移动、复制
- 多语言
- 离线下载(即将支持)
常见问题
更新方法
警告
不同的安装方式更新方法有所不同,请根据自己的安装方式选择对应的更新方法!
注意:更新完毕后请关闭所有Zdir浏览器窗口,然后重新打开,不然浏览器可能有缓存!
Docker更新方式
- 先停用当前容器
docker stop zdir
- 拉取新的镜像
docker pull helloz/zdir:4
- 重新创建容器,注意挂载路径和之前的容器保持一致
docker run -d --name="zdir" \
-v /opt/zdir/data:/opt/zdir/data \
-v /data/public:/opt/zdir/data/public \
-v /data/private:/opt/zdir/data/private \
-p 6080:6080 \
--restart=always \
helloz/zdir:4
如果是Docker Compose安装方式,方法如下:
- 停止当前容器
docker-compose down
- 拉取新的镜像:
docker-compose pull
- 重新启动容器
docker-compose up -d