Cloudreve网盘搭建

时间:2024-02-23 22:16:23

Cloudreve网盘搭建

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端口。
浏览器登录。
http://ip:5212
输入刚刚的账号密码进去之后再修改密码。

利用nginx反向代理

因为cloudreve默认不是使用nginx等web服务器的,应该是内置的那种。
使用宝塔或者命令行建立一个网站,修改网站的配置文件,代理本机的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;
}

高级功能配置

添加参数启动

./cloudreve -c /path/to/conf.ini  # 指定配置文件

默认采用sqsli,如果需要配置使用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重写数据库,出现默认用户密码,登录进去再进行修改

重置管理员密码

./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=/PATH_TO_CLOUDREVE/cloudreve
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的性能调整,最大上传大小。