Ubuntu 18.04构建基于Cloudreve网盘程序

Cloudreve 可以让您快速搭建起公私兼备的网盘系统。Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

获取 Cloudreve

你可以在 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为cloudreve_版本号_操作系统_CPU架构.tar.gz 。比如,普通64位Linux系统上部署3.0.0版本,则应该下载cloudreve_3.0.0_linux_amd64.tar.gz。
如果你想体验最新的功能特性,可以在 GitHub Actions 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用。
如果想要自行从源代码构建,请参阅以下章节:

启动 Cloudreve

Linux下,直接解压并执行主程序即可:

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端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve。
以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让Cloudreve更好的工作,具体流程请参考下面的配置流程。

反向代理

Nginx

1
2
3
4
5
6
7
8
9
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5212;

# 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
# client_max_body_size 20000m;
}

Apache

1
2
3
4
5
6
7
8
9
10
<VirtualHost *:80>
ServerName myapp.example.com
ServerAdmin webmaster@example.com
DocumentRoot /www/myapp/public

# 以下为关键部分
AllowEncodedSlashes NoDecode
ProxyPass "/" "http://127.0.0.1:5212/" nocanon

</VirtualHost>

进程守护

1
2
3
sudo vi /etc/systemd/system/cloudreve.service
##或者
vim /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

systemd相关操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve
管理命令:
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

上传设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#nginx配置文件:更改client_max_body_size 后面的值。
vim /usr/local/nginx/conf/nginx.conf
#client_max_body_size 20m;
#client_body_buffer_size 20m;
#keepalive_timeout 300;
#client_header_timeout 300s;
#client_body_timeout 300s;
#client_max_body_size 60m;

#php.ini:更改post_max_size 和upload_max_filesize 后面的值。
vim /usr/local/php/etc/php.ini
upload_max_filesize# 示例配置 upload_max_filesize = 20M;

#post_max_size = 40M
#max_execution_time = 300

修改完成后,重启nginx和php即可。

关于 Cloudreve 的 Docker 安装方式移步该页面