如何在Linux下部署自己的ZFile开源网盘
ZFile 项目介绍
ZFile是一个功能强大、灵活的开源网盘系统,为用户提供安全便捷的文件存储和共享方案。
项目概述
ZFile由ZFile, Inc.开发和维护,基于Docusaurus构建。其用户友好的界面支持多种文件存储和共享功能,并具备高度的可定制性和扩展性,以适应各种使用场景。
功能特点
ZFile的主要功能包括:
- 文件夹密码/加密:增强文件安全性。
- 文件夹管理:方便文件的组织和分类。
- 文件/文件夹隐藏:保护用户隐私。
- 在线视频播放:直接在网盘中观看视频。
- 在线文本预览:无需下载即可查看文本内容。
- 在线音频播放:在线收听音乐。
- 在线PDF预览:方便查看和分享PDF文档。
- 在线Office预览:支持Word、Excel、PowerPoint等文档预览。
存储源支持
ZFile支持多种存储源,包括但不限于本地存储、OneDrive、阿里云OSS、腾讯云COS、七牛云Kodo、又拍云USS等,用户可根据实际需求选择合适的存储方案。
ZFile凭借其强大的功能和特性,成为个人用户和企业用户的理想开源网盘解决方案。
以下将介绍如何在Linux服务器上进行部署,包括基础部署和Docker部署两种方式。
官方Demo:https://demo.zfile.vip/local-demo
Github仓库:https://github.com/zfile-dev/zfile
官方Demo截图:
环境准备
服务器准备
必要条件:
- 具备公网IP的Linux服务器(推荐腾讯云、阿里云或雨云等)。
- 本教程以雨云为例,新用户注册可享优惠。 注册链接:https://www.rainyun.com/NTEzMTM1_?s=blog
创建云服务器
- 点击“云产品”→“云服务器”→“立即购买”。
- 选择距离您较近的区域,以降低延迟。
- 建议带宽上传下载速度均大于30M,处理器和内存选择2核4G即可。更高配置可提升上传下载速度。
- 选择Ubuntu 22.04版本,并勾选预装Docker。
- 点击“立即购买”,并完成后续购买流程。 购买完成后,等待服务器部署完毕,进入管理面板,找到远程连接信息。
- 使用PowerShell进行远程连接:输入
ssh root@你的服务器IP
(例如ssh root@154.9.227.239
),首次连接需输入yes
,然后回车即可登录。
Linux 服务器部署 ZFile 教程
1. 安装依赖
在首次部署 ZFile 之前,需要安装一些依赖。以下是针对 CentOS 和 Ubuntu 的依赖安装命令:
-
对于 CentOS:
yum install -y java-1.8.0-openjdk unzip -y
-
对于 Ubuntu:
# Ubuntu 的具体命令可能略有不同,通常需要安装 openjdk-8-jdk 和 unzip sudo apt-get update sudo apt-get install openjdk-8-jdk unzip -y
2. 下载并解压
export ZFILE_INSTALL_PATH=~/zfile
mkdir -p $ZFILE_INSTALL_PATH && cd $ZFILE_INSTALL_PATH
wget --no-check-certificate https://c.jun6.net/ZFILE/zfile-release.war
unzip zfile-release.war && rm -rf zfile-release.war
chmod +x $ZFILE_INSTALL_PATH/bin/*.sh
3. 启动项目
使用以下命令启动 ZFile:
~/zfile/bin/start.sh # 启动
输出:
➜ zfile ~/zfile/bin/start.sh # 启动
apm home:
OPTS param:
Starting the zfile-4.1.5 ...OK!
PID: 29872
➜ zfile
启动后,通过浏览器访问 http://ip:8080
来查看 ZFile 是否成功启动。如果无法访问,请检查端口是否冲突或防火墙/安全组是否开启。可以通过在服务器执行 curl http://127.0.0.1:8080
来简单检查:
- 返回
curl: (7) Failed connect to 127.0.0.1:8080; Connection refused
表示启动失败。 - 返回HTML代码表示启动成功。
4.网页操作步骤
- 创建管理员账号。
- 创建存储策略(例如本地存储)。
- 保存配置后,访问
http://you_server_ip:8080
即可查看本地存储,并进行文件上传。
5. 其他命令
- 启动:
~/zfile/bin/start.sh
- 停止:
~/zfile/bin/stop.sh
6. 配置文件路径
配置文件路径:~/zfile/WEB-INF/classes/application.properties
7. 更新版本
注意:更新前务必停止ZFile服务。
~/zfile/bin/stop.sh
rm -rf ~/zfile
export ZFILE_INSTALL_PATH=~/zfile
mkdir -p $ZFILE_INSTALL_PATH && cd $ZFILE_INSTALL_PATH
wget --no-check-certificate https://c.jun6.net/ZFILE/zfile-release.war
unzip zfile-release.war && rm -rf zfile-release.war
chmod +x $ZFILE_INSTALL_PATH/bin/*.sh
~/zfile/bin/start.sh
Docker 部署
1. 安装介绍
ZFile Docker镜像地址:https://hub.docker.com/r/zhaojun1998/zfile
备用镜像:
- 香港:
swr.ap-southeast-1.myhuaweicloud.com/zfile-dev/zfile:latest
- 北京:
swr.cn-north-1.myhuaweicloud.com/zfile-dev/zfile:latest
2. 基本部署命令
docker run -d --name=zfile --restart=always \\-p 8080:8080 \\-v /root/zfile/db:/root/.zfile-v4/db \\-v /root/zfile/logs:/root/.zfile-v4/logs \\-v /root/zfile/file:/data/file \\zahojun1998/zfile:latest
- 8080端口可根据实际情况修改。
/root/zfile/file
映射到容器内的/data/file
,用于本地存储映射,可根据需要修改或删除。
3. 配置文件映射
-
下载配置文件:
curl -k -o /root/application.properties https://c.jun6.net/ZFILE/application.properties
-
修改Docker命令,增加配置文件映射:
docker run -d --name=zfile --restart=always \\-p 8080:8080 \\-v /root/zfile/db:/root/.zfile-v4/db \\-v /root/zfile/logs:/root/.zfile-v4/logs \\-v /root/zfile/file:/data/file \\-v /root/application.properties:/root/application.properties \\zahojun1998/zfile:latest
4. Docker Compose 部署
docker-compose.yml
文件示例:
version: '3.3'
services:zfile:container_name: zfilerestart: alwaysports:- '8080:8080'volumes:- '/root/zfile/db:/root/.zfile-v4/db'- '/root/zfile/logs:/root/.zfile-v4/logs'- '/root/zfile/file:/data/file'image: zhaojun1998/zfile:latest
带配置文件映射的示例:
version: '3.3'
services:zfile:container_name: zfilerestart: alwaysports:- '8080:8080'volumes:- '/root/zfile/db:/root/.zfile-v4/db'- '/root/zfile/logs:/root/.zfile-v4/logs'- '/root/zfile/file:/data/file'- '/root/application.properties:/root/application.properties'image: zhaojun1998/zfile:latest
5. 更新版本
- 手动更新:单次手动更新名称为
zfile
的容器:
docker run --rm \\-v /var/run/docker.sock:/var/run/docker.sock \\containrrr/watchtower \\--cleanup \\--run-once \\zfile
- 自动更新:每 3600 秒(1小时)自动检测更新名称为
zfile
的容器:
docker run -d \\--name watchtower \\--restart always \\-v /var/run/docker.sock:/var/run/docker.sock \\containrrr/watchtower \\--cleanup \\zfile \\-i 3600
相关链接
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTEzMTM1_?s=blog
我的博客:https://blog.ivwv.site