自定义网盘-Cloudreve

自定义网盘 Cloudreve

自定义网盘 Cloudreve

平时需要手机/电脑互传文件,搜索发现已经有解决方案了,例如nextCloud,Cloudreve,ifilespace等等,个人总结下它们各有优缺点

平台优点缺点
nextCloud

1. 开源

2. 全平台支持(win/mac/ios/android)

部署复杂
cloudreve

1. 开源

2. 部署简单

3. 可自由配置

4. 支持PWA

仅有web版本
ifilespace

1. 部署简单

2. 全平台支持(win/mac/ios/android)

闭源

 

最终,个人选择了cloudreve这个产品,官方网址如下:Cloudreve - 部署公私兼备的网盘系统

 

一、安装过程

1. 下载安装包:Releases · cloudreve/Cloudreve (github.com) 找对应的平台下载即可,一般都是选择linux-amd64版本

2. 上传到服务器,例如目录是/data/file-server,解压缩后可以看到一个名称为cloudreve的文件

3. 运行./cloudreve 即可,此时可以看到屏幕会显示账号名和密码、监听的端口(默认5212端口)等信息,需要记住这个账户名和密码

4. 直接登录http://ip:5212即可进入了

5. 一般情况下我们都会使用nginx进行转发处理

下面是一个nginx配置例子

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 512m;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        server {
                listen 80;
                server_name hanhna.com www.hanhna.com;
                rewrite ^(.*){content}nbsp;https://$host$1 permanent;
                location / {
                        proxy_pass http://127.0.0.1:19002;
                        proxy_http_version 1.1;
                        proxy_set_header X_FORWARDED_PROTO https;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header Host $host;
                        #root /root/static;
                }    
        }

        server { 
                listen 80; 
                server_name file.hanhna.com; 
        
                rewrite ^(.*){content}nbsp;https://$host$1 permanent; 
        }

        server {
                listen 443 ssl;

                server_name file.hanhna.com;
                #root html;
                #index index.html index.htm;
                ssl_certificate   /etc/letsencrypt/live/file.hanhna.com/fullchain.pem;
                ssl_certificate_key     /etc/letsencrypt/live/file.hanhna.com/privkey.pem;
                ssl_session_timeout 5m;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
                ssl_prefer_server_ciphers on;
                location / {
                        proxy_pass http://127.0.0.1:5212;
                        proxy_http_version 1.1;
                        proxy_set_header X_FORWARDED_PROTO https;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header Host $host;
                }

                error_page 404 /404.html;
                        location = /40x.html {
                }

                error_page 500 502 503 504 /50x.html;
                        location = /50x.html {
                }
        }
}

二、存在的问题

1. 后台执行问题

官方文档中有解决方案:快速开始 - Cloudreve

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

    (2)将下文 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​

    (3# 更新配置
        systemctl daemon-reload

    (4)# 启动服务
        systemctl start cloudreve

    (5)# 设置开机启动
        systemctl enable cloudreve

 

2. 上传大文件失败的问题

    一般出现这个问题都是因为nginx配置的问题,在nginx配置即可:即http{} 中加入client_max_body_size 512m;

 

3. 第三方app的问题

    有个开源的适配第三方app,使用fluter编写,具体地址是:Releases · YangChengxxyy/cloudreve_flutter (github.com)


目录