Cloudreve是一款基于Web的文件共享和管理服务软件。它可以用于创建自己的私有云存储服务或公共文件分享平台,该网盘底层支持本机存储、从机存储、阿里云OSS、又拍云、腾讯云COS、七牛云存储、OneDrive(国际版/世纪互联版)等多种存储方式,每种存储方式的上传和下载都是客户端直传,无需经过服务器中转。Cloudreve是简单简洁的一个网盘,个人使用足够了,没有nextcloud那么复杂和庞大。
系统环境: Centos 8 nginx(用作代理)
下载源码
地址:https://github.com/cloudreve/Cloudreve/releases
简单安装
新版本使用GO语言重构之后解压完成之后只有一个cloudreve二进制启动文件。 上传到网站根目录并解压
./cloudreve执行,出现下面提示表示成功运行了。会出现默认账号和密码以及监听端口,默认是5212.
[root@centos8 cloudreve]# ./cloudreve ___ _ _ / __\ | ___ _ _ __| |_ __ _____ _____ / / | |/ _ \| | | |/ _ | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | | __/\ V / __/
\____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|V3.2.1 Commit #3b22b4f Pro=false
================================================[Info] 2021-04-21 19:49:21 初始化数据库连接
[Info] 2021-04-21 19:49:21 开始进行数据库初始化...
[Info] 2021-04-21 19:49:22 初始管理员账号:admin@cloudreve.org
[Info] 2021-04-21 19:49:22 初始管理员密码:BnAc9TkN
[Info] 2021-04-21 19:49:22 数据库初始化结束
[Info] 2021-04-21 19:49:22 初始化任务队列,WorkerNum = 10
[Info] 2021-04-21 19:49:22 初始化定时任务...
[Info] 2021-04-21 19:49:22 当前运行模式:Master
[Info] 2021-04-21 19:49:22 开始监听 :5212
[Info] 2021-04-21 19:49:24 有新的版本 [3.3.1] 可用,下载:https://github.com/cloudreve/Cloudreve/releases/tag/3.3.1
开启防火墙和云服务器的安全组5212端口。
firewall-cmd --zone=public --add-port=5212/tcp --permanent
firewall-cmd --reload
浏览器登录http://ip:5212 输入刚刚的账号密码进去之后再修改密码。
利用nginx反向代理
因为cloudreve默认不是使用nginx等web服务器的,应该是内置的那种,因此建议使用nginx作为代理访问。 建议先部署nginx,参考之前的文章:
【必读】从零开始,一步步教你安装nginx,搭建个人博客网站!
然后在配置80端口的server块进行如下配置,实际就是访问服务器的80端口会代理到网盘5212。
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;
}
高级功能配置
添加参数启动,通过-c指定配置文件。
./cloudreve -c /path/to/conf.ini # 指定配置文件
默认采用sqsli,如果需要配置使用mysql需修改配置文件。
可以参考: 【必看】Centos 8系统下,一键安装MySQL服务器,助你快速搭建数据库!
conf.ini配置
在后面添加如下配置
[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = cloudreve
; 密码
Password = cloudreve
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = cloudreve
; 数据表前缀
TablePrefix = cd
配置redis
如果需要配置redis缓存,在后面添加如下内容。
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 1
重置管理员密码
使用nginx代理cloudreve,添加mysql,redis,ssl证书在nginx配置
忘记密码或者无法登录解决方法。
将cloudreve数据库删除,使用./cloudreve -c conf.ini重写数据库,出现默认用户密码,登录进去再进行修改
(重置管理员密码,这个似乎只适合sqlite的使用。)
./cloudreve --database-script ResetAdminPassword
配置ssl证书,在nginx中配置
在网站配置中配置ssl证书和密钥路以及端口。
systemctl管理启动进程
创建文件,替换对应的二进制程序目录 vim /usr/lib/systemd/system/cloudreve.service
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target
[Service]
WorkingDirectory=/PATH_TO_CLOUDREVE
ExecStart=/www/server/cloudreve -c /www/server/conf.ini # 启动进程和配置文件
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target
使用systemctl管理进程 systemctl start cloudreve #启动进程 systemctl stop cloudreve #停止进程 systemctl enable cloudreve #开机启动进程
完整配置示例参考
[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5000
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss; SSL 相关
[SSL]
; SSL 监听端口
Listen = :443
; 证书路径
CertPath = C:\Users\i\Documents\fullchain.pem
; 私钥路径
KeyPath = C:\Users\i\Documents\privkey.pem; 启用 Unix Socket 监听
[UnixSocket]
Listen = /run/cloudreve/cloudreve.sock; 数据库相关,如果你只想使用内置的 SQLite数据库,这一部分直接删去即可
[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd_
; SQLite 数据库文件路径
DBFile = cloudreve.db; 从机模式下的配置
[Slave]
; 通信密钥
Secret = 1234567891234567123456789123456712345678912345671234567891234567
; 回调请求超时时间 (s)
CallbackTimeout = 20
; 签名有效期
SignatureTTL = 60; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0; 从机模式缩略图
[Thumbnail]
MaxWidth = 400
MaxHeight = 300
FileSuffix = ._thumb
问题
如果遇到使用反向代理之后上传大文件卡在处理的问题,修改nginx的性能调整,最大上传大小。
理想情况下我觉得使用mysql数据进行数据存储,配置redis缓存,然后通过nginx80端口代理cloudreve网盘是比较好的实现方式,大部分配置可以在conf.ini里面指定。
然后开启端口,使用systemctl进行管理服务进程。
本文由 mdnice 多平台发布