Cloudreve – 个人网盘 Linux 部署教程
本文最后更新于 534 天前,其中的信息可能已经有所发展或是发生改变。

在目前公共网盘不是面临限速就是价格高涨,同时面临着和谐危险的情况下,自行部署个人网盘已经成为了很多人的选择。

出于对折腾服务器的兴趣,本人购买了一台云服务器,通过 Cloudreve 搭建了属于自己的网盘。

在这里,就分享一些 Cloudreve 安装的教程和经验。

准备材料

为了搭建一个网盘,你需要准备的有:

  • 一台云服务器,采用主流 Linux 系统(推荐使用 Ubuntu 20.04 LTS)。
  • 一个域名(可选)。

在此次教程中,本人使用的环境及材料为:

  • 一台使用 1TB HDD 存储的 单核心,2GB 内存服务器。
  • 使用系统为:Ubuntu 20.04 LTS。
  • 采用一个二级域名并将域名解析指定到服务器上(无CDN)。
  • 域名对应的 SSL 证书。

前期准备

为了生产环境的安全,请不要将 Cloudreve 在 root 用户下执行。

这里我们创建一个用户用于运行 Cloudreve:

adduser <你想要的用户名>

系统将会引导你输入密码,并设置好个人信息(可以乱填)。

用户创建成功后,我们对其赋予 sudo 组:

usermod -G sudo <用户名>

这样就将用户加入了 sudo 组,赋予了该用户使用 sudo 命令的权限。

我们切换到这个用户,并转到家目录:

su <用户名>
cd

基础部署

首先,从 https://github.com/cloudreve/Cloudreve/releases 找到对应服务器的版本并下载。

一般的云服务器,下载对应 linux_amd64 的版本即可。下载后放置到用户的家目录中。

执行解压:

tar -xf <下载到的压缩包名>

对主程序赋予执行权限:

chmod +x ./cloudreve

尝试执行主程序:

./cloudreve

留意程序输出的内容,此时会返回默认管理员的账号和密码。

访问到 http://<服务器ip>:5212 ,尝试输入账号密码进入网盘。(预先在防火墙或其他安全策略放行对应端口)

若能成功访问,则代表运行没有问题。

进程守护

通过以上步骤建立的服务,在退出控制台后就会被强制终止。

虽然我们可以用 screen 等方式维持其后台运行,但要实现服务的稳定还是需要进程守护的协助。

这里我们采用 Systemd 实现进程守护。

编辑配置文件:

vim /usr/lib/systemd/system/cloudreve.service

将配置文件内容修改为:(若使用 root 用户可以删除 User 对应行)

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
User=<安装cloudreve的用户名> 
WorkingDirectory=<cloudreve根目录路径>
ExecStart=<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

Nginx 反代

在进行此步骤之前,请做好如下准备:

  • 正确使用域名并配置了 DNS 解析。

在 Ubuntu 20.04 LTS 中,我们可以快速 apt 安装 nginx:

sudo apt install nginx

(不要问我为什么不用宝塔部署,问就是更省事也更轻便,还有一些不方便说的原因)

找到 nginx 的配置文件位置,这里以 /etc/nginx/nginx.conf(实际位置因人而异)为例:

一样是进入vim编辑:

vim /etc/nginx/nginx.conf

在http下方插入:(看得懂的可以自己改站点配置位置,whatever)

include /etc/nginx/cloudreve.conf;

保存并退出。(提示,若 nginx.conf 里面已经有 include /etc/nginx/sites-enabled/*; 类似描述则可以不插入此内容,后面编辑站点配置在对应地方创建配置即可)

这时创建编辑站点配置:

vim /etc/nginx/cloudreve.conf

将配置内容改为:

server
{ 
        listen 80;
        server_name <对应域名>;
        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;
        }
}

修改完毕后保存并退出,然后重启nginx:

systemctl restart nginx

这时,应该可以通过浏览器直接访问域名,登入 Cloudreve 。

站点 SSL

在进行此步骤前,你需要准备的:

  • 完成本文的 Nginx反代 教程。
  • 为相应的 DNS 解析申请了可用的 SSL 证书。

找到你的 SSL 证书(在域名商/证书机构可下载),将其中的 .key 及 .pem 文件放置到服务器。

文件放置位置随意,保证随时可访问即可。(个人习惯为放在nginx配置目录下,自行创建cert目录放置)

重新编辑你的站点配置:(这里以本教程中出现的 /etc/nginx/cloudreve.conf 为例)

vim /etc/nginx/cloudreve.conf

对配置内容修改如下:

server
{ 
        listen 80;
        listen 443 ssl http2; 
        server_name <对应域名>;
        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;
        }

        # SSL证书部署(此处路径为直接指向文件而不是根目录)
        ssl_certificate <证书 .pem 所在绝对路径>;
        ssl_certificate_key <证书 .key 所在绝对路径>;

        ssl_session_timeout  5m;

        # 可选项,进行301重定向,强制https
        if ($scheme = http) {
        return 301 https://$server_name$request_uri;
        }

}

修改完毕后保存并退出,然后重启nginx:

systemctl restart nginx

若无报错,通过浏览器访问 Cloudreve 时有https证书显示,即代表 SSL 配置成功。

踩过的坑

部署ipv6解析及反代时出现问题?

  • ipv6对应的配置文件应该有所修改:
server
{ 
        listen [::]:80 ipv6only=on;
        listen [::]:443 ipv6only=on ssl http2;
        server_name <对应域名>;
        location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://[::1]:5212;

        # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
        client_max_body_size 20000m;
        }

        ssl_certificate <证书 .pem 所在绝对路径>;
        ssl_certificate_key <证书 .key 所在绝对路径>;

        ssl_session_timeout  5m;

        if ($scheme = http) {
        return 301 https://$server_name$request_uri;
        }

}
  • 如果你对同个域名,同时用 A 记录和 AAAA 记录解析,访问时应该会优先 ipv6 访问,在某些校园网环境有奇效。

总结

部署 Cloudreve 的过程应该可谓简单,但为了保证其稳定运行及便捷访问,还是需要进行一定的操作。

本问主要面向对 Linux 不熟悉的用户,建立一个更全面详细的部署教程。

若本文内容存在争议及错误,请各位大佬不吝赐教。

本站作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇