侧边栏壁纸
  • 累计撰写 27 篇文章
  • 累计创建 42 个标签
  • 累计收到 34 条评论

目 录CONTENT

文章目录

私有云盘 Cloudreve 搭建

miykah
2023-11-23 / 0 评论 / 0 点赞 / 79 阅读 / 10293 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-11,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

私有云盘 Cloudreve 搭建

参考文档:

https://docs.cloudreve.org/

https://zhuanlan.zhihu.com/p/607099693?utm_id=0

创建站点

在宝塔面板创建站点,使用域名的话需要提前准备好,解析到服务器的 IP。

同时可以申请 SSL 证书。

反向代理

网上教程里是直接在宝塔的站点里配置反向代理,代理到 5212 端口。但是由于我 nginx 配置中已经存在 location / 规则,这样操作不行,所以自己在 nginx 配置文件中写

在服务器的 nginx 配置文件中添加以下配置(配置 ssl 需要提前申请证书,然后保存到服务器)

server {
    listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    listen 443 ssl; #侦听443端口,用于SSL
    server_name pan.miykah.top;  # 自己的域名

    #配置 ssl
    ssl_certificate     /opt/cert/pan.miykah.top/pan.miykah.top_bundle.pem;  # pem文件的径
    ssl_certificate_key  /opt/cert/pan.miykah.top/pan.miykah.top.key; # key文件的路径

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    client_max_body_size 1024m;

    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

获取下载地址:https://github.com/cloudreve/Cloudreve/releases

进入站点目录:/www/wwwroot/cloudreve

执行:

wget https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz

下载 cloudreve_3.8.3_linux_amd64.tar.gz

然后解压文件到当前目录就行:

tar -zxvf cloudreve_3.8.3_linux_amd64.tar.gz

启动 Cloudreve

# 赋予执行权限
chmod +x ./cloudreve

# 启动 Cloudreve
./cloudreve

然后控制台会输出一些信息,其中包括初始化管理员账号和密码,需要记住,只会出现这一次。

如果您忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户。

成果

此时可以进入站点域名,登录进入 cloudreve

此时我们没有进行其他的额外配置。

1.目前只能手动启动,没有配置守护进程

2.目前使用的是内置的 SQLite 数据库(在同级目录创建数据库文cloudreve.db

3.没有配置 Redis 缓存

配置

进程守护

配置 cloudreve.service 文件:

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

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录(本文中目录为/www/wwwroot/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

配置 MySQL

默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件cloudreve.db,如果您想要使用 MySQL,请在配置文件中加入以下内容,并重启 Cloudreve。注意,Cloudreve 只支持大于或等于 5.7 版本的 MySQL 。

(好像需要提前在 MySQL 创建好 cloudreve 数据库)

修改站点目录下的 conf.ini 文件,添加以下配置:

[Database]
; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = xxxxx
; 密码
Password = xxxxx
;  数据库地址
Host = 127.0.0.1
; 数据库名称(应该需要提前创建)
Name = cloudreve
;  数据表前缀 
TablePrefix = cd_
; 字符集
Charset = utf8mb4

更换数据库配置后,Cloudreve 会重新初始化数据库,原有的数据将会丢失。也就是说之前的管理员账号登不上了。需要将 cloudreve.db 先删除,重新./cloudreve启动一下,可以重新生成管理员账号和密码。

配置 Redis

使用 Redis 后,以下内容将被 Redis 接管:

  • 用户会话(重启 Cloudreve 后不会再丢失登录会话)

  • 数据表高频记录查询缓存(如存储策略、设置项)

  • 回调会话

  • OneDrive 凭证

修改站点目录下的 conf.ini 文件,添加以下配置:

[Redis]
Server = 127.0.0.1:6379
Password = xxxxx
DB = 3

扩展

office 文档预览 / 编辑

参考:

https://docs.cloudreve.org/use/wopi

https://www.jianshu.com/p/3216cf6196d1

选择官方文档推荐的第一种:Collabora Online

使用 Docker 部署 Collabora Online

首先拉取镜像:

docker pull docker pull collabora/code

启动容器命令如下:

docker run -t -d -p 127.0.0.1:9980:9980 \
           -e "aliasgroup1=<允许使用此服务的 Cloudreve 地址,包含明确端口>" \
           -e "username=<面板管理员用户名>" \
           -e "password=<面板管理员密码>" \
           --name collabora --restart always collabora/code

以我的命令为例:

 docker run -t -d -p 127.0.0.1:9980:9980 \
			-e "aliasgroup1=https://pan.miykah.top:443" \
			-e "username=xxxxx" \
			-e "password=xxxxx" \
			--name collabora --restart always collabora/code

同时需要在宝塔和云服务器防火墙放行 9980 端口

配置反向代理

首先准备域名并解析 collabora.miykah.top 解析到服务器ip。申请 SSL 证书保存到服务器。

配置 nginx 反向代理:

server {
    listen       443 ssl;

    server_name   collabora.miykah.top;
    ssl on;
    ssl_certificate /opt/cert/collabora.miykah.top/collabora.miykah.top_bundle.pem;
    ssl_certificate_key /opt/cert/collabora.miykah.top/collabora.miykah.top.key;
    
    location ^~ /loleaflet {
      proxy_pass https://127.0.0.1:9980;
      proxy_set_header Host $http_host;
    }

    # static files
    location ^~ /browser {
     proxy_pass https://127.0.0.1:9980;
     proxy_set_header Host $http_host;
    }
    
    
    # WOPI discovery URL
    location ^~ /hosting/discovery {
     proxy_pass https://127.0.0.1:9980;
     proxy_set_header Host $http_host;
    }
    
    
    # Capabilities
    location ^~ /hosting/capabilities {
      proxy_pass https://127.0.0.1:9980;
      proxy_set_header Host $http_host;
    }
    
    
    # main websocket
    location ~ ^/cool/(.*)/ws$ {
      proxy_pass https://127.0.0.1:9980;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $http_host;
      proxy_read_timeout 36000s;
    }
    
    
    # download, presentation and image upload
    location ~ ^/(c|l)ool {
      proxy_pass https://127.0.0.1:9980;
      proxy_set_header Host $http_host;
    }
    
    
    # Admin Console websocket
    location ^~ /cool/adminws {
      proxy_pass https://127.0.0.1:9980;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $http_host;
      proxy_read_timeout 36000s;
    }
}

访问 https://collabora.miykah.top/hosting/discovery 确认是否返回了预期的 XML 响应。

在 Cloudreve 中配置并测试

在 Cloudreve 中配置 WOPI 客户端。保存后即可测试文件是否能在线编辑。

相关问题

迁移

参考:https://forum.cloudreve.org/d/2715

FTP进入Cloudreve安装目录,打包下载以下文件

  • cloudreve #主程序

  • conf.ini #配置文件

  • cloudreve.db #Sqlite数据库

  • avatar #用户头像文件夹

  • uploads #用户存储文件夹

如果使用的是MySQL数据库,还需要导出数据库

将下载的文件上传到新服务器,按照之前安装的方法启动即可

0

评论区