跳到主要内容

zdir

zdir

官网

https://www.zdir.pro/zh/

image-20240617162302713

介绍

Zdir是一款使用使用Golang + Vue3开发的多功能私有存储程序,集成了文件索引、在线预览和分享功能,支持WebDAV和离线下载(即将支持),非常适合安装在NAS设备或大容量VPS上,是个人、工作室和小团队分享文件的理想选择。

image-20240617162520015

image-20240617162700981

定价

image-20240617162841306

演示

image-20240617162951264

image-20240617163020497

image-20240617163054403

image-20240617163128917

image-20240617163156739

image-20240617163218246

image-20240617163239699

常见问题

image-20240617163309361

演示

https://soft.xiaoz.org/#/

image-20240617163501289

起源

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.x3.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 使用方法

  1. 先下载离线镜像,如zdir4.tar
  2. 然后导入:docker load -i zdir4.tar
  3. 最后参考下面的方法继续安装

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私有目录,请勿修改
  • 第一列目录为您的主机目录,可自行修改

630e4f19be81e3cd.png

安装完毕后请自行检查您第一列挂载目录下是否存在数据,如果不存在数据,可能没有正确挂载,后期升级容器镜像可能会有数据丢失风险!!!

初始化

安装完毕后打开http://IP:6080完成初始化操作。

2、自己实际安装过程

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




[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'

容器路径说明

  • 第二列/opt/zdir/data为容器路径,里面保存了Zdir数据库和配置等信息,请勿修改
  • 第二列/opt/zdir/data/public为容器内Zdir公有目录,请勿修改
  • 第二列/opt/zdir/data/private为容器内Zdir私有目录,请勿修改
  • 第一列目录为您的主机目录,可自行修改

630e4f19be81e3cd.png

安装完毕后请自行检查您第一列挂载目录下是否存在数据,如果不存在数据,可能没有正确挂载,后期升级容器镜像可能会有数据丢失风险!!!

😉注意:

当前我是没创建本地数据目录的,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]#

访问:

http://47.100.215.163:6080

  • 初始化成功

  • 小试牛刀

使用

填写授权信息(已解决)

需求:我可以更改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
  • 访问失败

http://onedayxyy.cn/zdir

https://onedayxyy.cn/zdir

帮助

如需技术支持请联系微信:xiaozme

https://doc.xiaoz.top/web/#/10/37

image-20240617163357697

更新日志

image-20240922204424609

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服务端支持
  • 全局文件搜索
  • 前后台一体化
  • 文件修改
  • 文件移动、复制
  • 多语言
  • 离线下载(即将支持)

image-20240617164044463

更新方法

注意

不同的安装方式更新方法有所不同,请根据自己的安装方式选择对应的更新方法!

注意:更新完毕后请关闭所有Zdir浏览器窗口,然后重新打开,不然浏览器可能有缓存!

Docker更新方式

  1. 先停用当前容器docker stop zdir
  2. 拉取新的镜像docker pull helloz/zdir:4
  3. 重新创建容器,注意挂载路径和之前的容器保持一致
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安装方式,方法如下:

  1. 停止当前容器docker-compose down
  2. 拉取新的镜像:docker-compose pull
  3. 重新启动容器docker-compose up -d

群晖用户

linux更新方式