跳到主要内容

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

更新日志

4.x版本功能

  • 文件索引
  • 文件预览(支持图片、文档、音乐、视频等预览)
  • 私有文件
  • 私有文件分享
  • 文件管理(上传、下载、删除、重命名)
  • 图片预览
  • API支持
  • WebDAV服务端支持
  • 全局文件搜索
  • 前后台一体化
  • 文件修改
  • 文件移动、复制
  • 多语言
  • 离线下载(即将支持)

image-20240617164044463