个人理解:NextCloud更多倾向于基于云盘的团队协作,对只需要云盘的我来说,略显臃肿。在实际使用中发现NextCloud在运行中需要较高的CPU处理能力,对一段视频的处理速度有时候会导致服务器运行卡死,毕竟我电脑是5年前的笔记本了。
对于仅需要独立云盘的我来说,我舍弃了NextCloud选择了Cloudreve,经过一段时间的测试,Cloudreve更加简洁实用。在日常使用过程中,上传文件下载文件都不会占用CPU资源。
前期一些准备可见(ipv6承载云盘):家庭宽带搭建ipv6私人网盘
环境:Ubuntu 22.04+8G+2T机械+i5-8250U 1.6G (戴尔7572,重装的Ubuntu系统)
1.直接获取 wget https://github.com/cloudreve/Cloudreve/releases/download/3.7.1/cloudreve_3.7.1_linux_amd64.tar.gz
2.GitHub下载对应的安装包 https://github.com/cloudreve/Cloudreve/release
解压到当前目录 tar -zxvf cloudreve_3.7.1_linux_amd64.tar.gz
解压到指定目录 tar -zxvf cloudreve_3.7.1_linux_amd64.tar.gz -C "you_install_path(eg: /opt/cloudreve)"
找到Cloudreve解压目录,下面会有一个可执行文件cloudreve
./cloudreve #启动cloudreve
执行后会看到生成的文件以及控制台输出的默认账号密码(初始有效,忘记后删除cloudreve.db后使用./cloudreve重新生成管理账号密码)
conf.ini #配置文件
cloudreve.db #-数据文件
Admin user name: [email protected] #初始管理账号
Admin password: ******** #账号密码
使用初始化账号密码网页访问localhost:5212(默认端口)即可访问cloudreve
cd /
vim usr/lib/systemd/system/cloudreve.service
写入以下内容(i -编辑,Esc -退出编辑,:wq -保存退出,:q -退出不保存)
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target
[Service]
WorkingDirectory= #dir of cloudreve
ExecStart= #path of cloudreve
Restart=on-abnormal
RestartSec=5s
StandardOutput=append:/opt/logs/cloudreve.log #log地址会被nginx日志接管
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target
保存退出,刷新systemctl服务(命令根据操作系统而定),启动cloudreve
systemctl daemon-reload #刷新systemctl
systemctl start/stop/restart cloudreve #启动/停止/重启cloudreve
systemctl enable cloudreve #开机自启动
MySQL和Redis安装方法可参考我搭建NextCloud那篇文章:家庭宽带搭建ipv6私人网盘
打开conf.ini内容如下
[System]
Debug = false
Mode = master
Listen = :5212 #可更改自己端口,重启cloudreve生效
SessionSecret = urJu****r7IM0EffOFHMWK1LbK5xo6eGS4amPRpDe
HashIDSalt = tDNCyEAPzXXlT****Ys3edeKyJAijMSLwIwP
配置自己的数据库MySQL
[Database]
#数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
Port = 3306
User = *User*
Password = *Password*
Host = 127.0.0.1 #本地
Name = cloudreve #库名
TablePrefix = cd #数据表前缀,所有数据表都会以cd开头命名(eg:cdfiles,cddownloads)
Charset = utf8 #编码
可配置自己的Redis
[Redis]
Server = 127.0.0.1:6379
Password = *Password*
DB = 1 #库索引(0-15)
编辑Nginx文件
cd /
vim /etc/nginx/sites-enabled/default
server { #新增server(有域名和证书)
listen 4433 ssl;
listen [::]:4433 ssl;
server_name example.com;
server_tokens off;
ssl_certificate (path of example.com_bundle.pem);
ssl_certificate_key (path of example.com.key);
#服务端要支持 协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
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; #port默认5212
client_max_body_size 60000m; #上传文件最大size
}
}
Esc退出编辑,:wq保存退出,重启nginx,使用example.com访问cloudreve
systemctl restart nginx
停掉cloudreve
systemctl stop cloudreve
在cloudreve目录下使用以下命令剥离静态文件
./cloudreve -eject
会在目录下生成"statics"静态资源文件夹,修改后使用启动命令启动cloudreve
systemctl start cloudreve
在GitHub上找到最新版本,解压到对应文件夹,删除原来的statics文件夹,使用systemctl启动即可
修改的静态文件可以使用前面的方法再次剥离修改。