通过 cloudreve 搭建私人网盘教程

开源、稳定、好用的三大网盘

  • nextcloud
  • owncloud
  • cloudreve

我心目中的开源网盘 TOP3,其中 nextcloud 和 cloudreve 亲身搭建测试用过,效果都不错。owncloud 据说是 nextcloud 的前身,的确感觉界面很类似。nextcloud 有各平台 app 客户端,插件丰富,功能强大。cloudreve 感觉更轻量级,部署方便,而且界面 UI 比较好看,GitHub 上 star 也非常多,感觉更受欢迎,我亲测过后也爱了。

cloudreve 特性

homepage

☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 、S3 兼容协议 作为存储端
📤 上传 / 下载 支持客户端直传,支持下载限速
💾 可对接 Aria2 离线下载,可使用多个从机节点分担下载任务
📚 在线 压缩 / 解压缩、多文件打包下载
💻 覆盖全部存储策略的 WebDAV 协议支持
⚡ 拖拽上传、目录上传、流式上传处理
🗃️ 文件拖拽管理
👩‍👧‍👦 多用户、用户组、多存储策略
🔗 创建文件、目录的分享链接,可设定自动过期
👁️‍🗨️ 视频、图像、音频、 ePub 在线预览,文本、Office 文档在线编辑
🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用、国际化支持
🚀 All-In-One 打包,开箱即用
🌈 … …

安装 cloudreve

GitHub 下载地址:https://github.com/cloudreve/Cloudreve/releases

根据操作系统和 CPU 架构下载对应的二进制文件,解压后直接运行即可:

1
2
3
4
5
6
7
8
# 解压程序包
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

# 赋予执行权限
chmod +x ./cloudreve

# 启动 Cloudreve
./cloudreve

Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的 cloudreve.db,重新启动主程序以初始化新的管理员账户。

Cloudreve 默认会监听 5212 端口。启动后直接在浏览器中访问 localhost:5212http://服务器IP:5212 进入 Cloudreve。

实操演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
geduer@gdk8:~$ mkdir cloudreve
geduer@gdk8:~$ cd cloudreve/
geduer@gdk8:~/cloudreve$ ls
cloudreve_3.8.0_linux_arm64.tar.gz
geduer@gdk8:~/cloudreve$ tar -xvf cloudreve_3.8.0_linux_arm64.tar.gz
LICENSE
README.md
README_zh-CN.md
cloudreve
geduer@gdk8:~/cloudreve$ ls
LICENSE README.md README_zh-CN.md cloudreve cloudreve_3.8.0_linux_arm64.tar.gz
geduer@gdk8:~/cloudreve$ ./cloudreve

___ _ _
/ __\ | ___ _ _ __| |_ __ _____ _____
/ / | |/ _ \| | | |/ _ | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | | __/\ V / __/
\____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|

V3.8.0 Commit #243c312 Pro=false
================================================.

[Info] 2023-06-19 14:44:03 Initializing database connection...
[Info] 2023-06-19 14:44:03 Start initializing database schema...
[Info] 2023-06-19 14:44:03 Admin user name: xxxxx
[Info] 2023-06-19 14:44:03 Admin password: xxxxx
[Info] 2023-06-19 14:44:04 Start executing database script "UpgradeTo3.4.0".
[Info] 2023-06-19 14:44:04 Finish initializing database schema.
[Info] 2023-06-19 14:44:04 Initialize task queue with WorkerNum = 10
[Info] 2023-06-19 14:44:04 Initialize crontab jobs...
[Info] 2023-06-19 14:44:04 Current running mode: Master.
[Info] 2023-06-19 14:44:04 Listening to ":5212"
[GIN] 2023/06/19 - 14:45:55 | 200 | 18.24428ms | 192.168.43.117 | GET "/"
[GIN] 2023/06/19 - 14:45:55 | 200 | 41.710503ms | 192.168.43.117 | GET "/static/css/6.57254ef2.chunk.css"
[GIN] 2023/06/19 - 14:45:55 | 200 | 144.74392ms | 192.168.43.117 | GET "/static/js/main.b28185a0.chunk.js"
[GIN] 2023/06/19 - 14:45:56 | 200 | 382.097422ms | 192.168.43.117 | GET "/static/js/6.2cdf7034.chunk.js"
[GIN] 2023/06/19 - 14:45:56 | 200 | 1.546953ms | 192.168.43.117 | GET "/locales/en-US/common.json?v=3.8.0-beta1"
[GIN] 2023/06/19 - 14:45:56 | 200 | 8.654829ms | 192.168.43.117 | GET "/api/v3/site/config"

设置 cloudreve 进程守护和开机启动

编辑配置文件

1
vim /usr/lib/systemd/system/cloudreve.service

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/PATH_TO_CLOUDREVE/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

配置命令

1
2
3
4
5
6
7
8
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令

1
2
3
4
5
6
7
8
9
10
11
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

实操演示

注意:如果存在配置文件对应的目录,则直接根据步骤操作即可。而我的新环境由于 /usr/lib/systemd 下没有 system 目录,vim 编辑文件后无法保存,此时需要先创建好对应的目录后,再编辑配置文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
root@gdk8:/usr/lib/systemd/system# vim cloudreve.service
root@gdk8:/usr/lib/systemd/system# systemctl daemon-reload
root@gdk8:/usr/lib/systemd/system# systemctl start cloudreve
root@gdk8:/usr/lib/systemd/system# systemctl enable cloudreve
Created symlink /etc/systemd/system/multi-user.target.wants/cloudreve.service → /usr/lib/systemd/system/cloudreve.service.
root@gdk8:/usr/lib/systemd/system# systemctl status cloudreve
● cloudreve.service - Cloudreve
Loaded: loaded (/usr/lib/systemd/system/cloudreve.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-06-19 15:24:53 CST; 13s ago
Docs: https://docs.cloudreve.org
Main PID: 1673 (cloudreve)
Tasks: 8 (limit: 4672)
CGroup: /system.slice/cloudreve.service
└─1673 /home/geduer/cloudreve/cloudreve

Jun 19 15:24:53 gdk8 systemd[1]: Started Cloudreve.
root@gdk8:/usr/lib/systemd/system# ls
cloudreve.service