简介

Cloudreve是一款在GitHub上开源的、可私人部署的云盘。网盘的网页端动画流畅、页面精美,支持视频、图像、音频、文本以及Office文档在线预览。同时,网盘中的文件不仅仅可以存储在自建服务器本地,还支持在从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive商业版(包括世纪互联版)中存储数据。

免费版 vs 捐赠版

Cloudreve分为免费版以及捐赠版,捐赠版目前的价格是¥299/域名*1,其主要多出一些商业化功能,比如容量包购买、用户购买等。免费与捐赠版之间的具体功能区分可以到Cloudreve论坛查看。对于一般个人用户来说,Cloudreve免费版足以满足日常需求。

搭建环境

  • Nginx
  • CentOS Linux 7.9.2009

注意:Cloudreve内置简易Web服务,数据库默认采用SQLite,理论上可以直接在Linux中运行。

注意:本教程使用CentOS Linux系统,Ubuntu等其他Linux系统在某些步骤中使用的命令会略有不同!

获取 Cloudreve

查看是否安装Wget

wget -V

安装Wget(已安装请跳过)

sudo yum install wget

更改当前目录位置

cd /home

下载最新版Cloudreve

GitHub:下载链接

CentOS x86架构选择cloudreve_3.3.2_linux_amd64.tar.gz

wget https://github.com/cloudreve/Cloudreve/releases/download/3.3.2/cloudreve_3.3.2_linux_amd64.tar.gz

启动 Cloudreve

解压获取到的主程序

tar -zxvf cloudreve_3.3.2_linux_amd64.tar.gz

赋予执行权限

chmod +x ./cloudreve

启动 Cloudreve

./cloudreve

Cloudreve 在首次启动时,会创建初始管理员账号。

First_Run_Cloudreve

Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve。

如果不能访问,请检查防火墙设置!

设置防火墙

CentOS Linux中有多套防火墙程序,CentOS 7默认使用firewall,CentOS 6.x默认使用iptables,也可以使用以下两条命令检查正在使用哪个防火墙。

# 查看iptables防火墙状态
service iptables status

# 查看firewall防火墙服务状态
systemctl status firewalld
# 查看firewall的状态
firewall-cmd --state

这里以firewall防火墙举例

查看firewall已放行所有端口

firewall-cmd --list-ports

开启5212端口

firewall-cmd --permanent --zone=public --add-port=5212/tcp

重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

再次在浏览器中访问http://服务器IP:5212进入 Cloudreve。

进程守护

默认状态下,关闭SSH终端会自动关闭Cloudreve程序,因此要设置进程守护让Cloudreve在后台一直运行,这里使用Systemd实现。

# 编辑配置文件
vim /usr/lib/systemd/system/cloudreve.service

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

[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
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令:

# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

Nginx 反向代理

修改Nginx配置文件

在网站的server字段中加入:

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;
}

Cloudreve 可能会与Nginx自带的内存产生冲突,因此需要注释或删除以下内容,否则会导致网站白屏。

#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#{
#        expires      30d;
#}
 
#location ~ .*\.(js|css)?$
#{
#        expires      12h;
#}

重启Nginx

service nginx restart

尝试在浏览器中访问http://服务器IP进入 Cloudreve。

修改防火墙设置

放行80端口

firewall-cmd --permanent --zone=public --add-port=80/tcp

由于5212端口不再需要,因此关闭5212端口

关闭5212端口

firewall-cmd --permanent --zone=public --remove-port=5212/tcp

重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

其他问题

请参考以下内容:

Cloudreve GitHub / Cloudreve 演示站 / Cloudreve 文档