搭建个人网盘

拥有一个属于自己的网盘,无论是哪一方面都不会受到限制,日常可以用来保存一些媒体资源,还可以一键生成分享链接,或是邀请你的好朋友一起使用网盘。

那么本期来教大家从零开始搭建一个个人网盘。

首先需要准备的资源:一台配置好Nginx/Apache、宝塔面板的云服务器

  1. 下载网盘程序

那么本期使用的网盘是CloudReve,一个优秀的Material设计的网盘。当然现存的优秀网盘还有KodExplorer(可视化图形)、Dzzoffice(适合团队使用)等

首先我们来到CloudReve的Github:https://github.com/cloudreve/Cloudreve/releases

点进去可以看到目前的最新版,这里我演示使用的是最新3.3.2版本

继续向下滚动就会看到Assets下面有许多个压缩包,选择适合你系统的即可

这里我是Linux系统,所以下载下来的是一个tar.gz文件

  1. 安装并启动网盘

下载好网盘的程序包之后,来到宝塔面板。

找到左边的网站,点进去添加一个新的站点,这里如果你绑定了域名就填你的域名,如果没有就填服务器ip。如果你有M有SQL数据库可以选择创建一个,后面会教如何转移数据库,不创建则使用SQLite。

创建好了之后,在网站内找到刚刚创建好网站的根目录,可以直接点进去。

点击上传,将刚才下载好的压缩包上传上去并解压到当前目录。

这里我解压完是一个没有后缀名的cloudreve文件,先不用管它。

现在我们可以来试着启动一下它,连接上你的服务器。

用cd命令到你的cloudreve文件目录下,再进行如下操作:

赋予执行权限

chmod +x ./cloudreve

启动 CloudReve

./cloudreve
执行完这两条命令,等待CloudReve启动后可以看到

记下管理员账号密码和开始监听的端口,我们通过刚才绑定的域名:端口来访问,也就是xxx.xxxx.xxx:5212

我们使用刚才的管理员账号密码登录进去,这样我们就可以直接开始使用了

现在你可以直接在网盘里面上传文件,文件储存在服务器本地。

  1. 系统进程守护

由于我们现在是Linux系统,不可能一直把服务器的控制台挂着,所以我们需要将CloudReve写成系统的Service来保证它可以一直运行。

我们来到服务器的根目录,再进到/usr/lib/systemd/system/中,新建一个文件,起名随意,但后缀为.service。

这里我创建的文件是cloudreve.service

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

[Service]
WorkingDirectory=/www/wwwroot/你的网站根目录/
ExecStart=/www/wwwroot/你的网站根目录/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target
将上面的配置信息全部复制到你新建的文件中,注意:WorkingDirectory和ExecStart的内容需要替换成你实际的目录

由于是用宝塔面板创建的网站,一般文件保存在www/wwwroot/中,若不是可以自行修改

保存之后我们来到服务器控制台,输入systemctl start 服务文件名

示例:systemctl start cloudreve

输入之后不会有什么反应,这时我们再输入systemctl status cloudreve来查看当前状态

上图中包含一些服务的信息,运行路径、启用状态、内存等

如果你想停止服务,将start改成stop即可。

那么现在我们就已经完成了对CloudReve的进程守护。

  1. 配置Cloudreve

我们再次回到网站的根目录,会发现多出来一个文件conf.ini,这个就是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/mssql/postgres
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd_
; 字符集
Charset = utf8
; 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
一般情况下我们是不需要那么多配置的,不知道怎么操作的只需要将[System]下的写入即可。

那么以上是文件配置,下面来介绍一下CloudReve的更多配置项。

我们用管理员账号登录网盘,点击右上角头像进入管理面板。

面板首页就是整个网盘的数据概览了,包括用户数量、文件数量、分享数量等。

在后台的左边有参数设置、储存策略、用户和用户组,下面我们来逐个介绍它们。

4.1 参数设置

站点信息一般只修改基本信息,下面的PWA不用管它。

邮件系统是一个比较重要的服务,注册登录中的邮件激活就需要用到它来发送邮件。

那么现在主流的邮箱都是有SMTP服务的,如163邮箱、QQ邮箱等。

发件人名可以随意填,邮箱建议填写你的邮箱,SMTP服务器则根据不用邮箱的实际情况来。

SMTP用户名密码则需要你去对应的邮箱开通SMTP服务后才会有,一般来说SMTP用户名就是你的邮箱,而密码则是你的SMTP授权码,不同邮箱的操作也是大同小异的。

SMTP端口建议用SSL端口(并非是443 而是邮箱提供的端口)。

4.2 储存策略

储存策略可以理解为网盘的储存区,我们可以添加不同的储存策略分给不同用户组使用,默认的储存策略是本地储存。

你可以选择添加一个储存策略,多储存策略的好处就是可以给不同储存策略定义不同的上传目录、上传限制等。

4.3 用户组

你可以为用户组分配不同的储存策略,也可以给用户组修改最大储存限制,以便将网盘分发给不同人使用。

4.4 用户

你可以直接在这里添加一个新用户,或更改现有用户的一些设置。

  1. (可选)将网盘对接到阿里云OSS

注意:在使用OSS前,有必要先了解OSS的计费标准,以免过度使用

我们会发现添加储存策略中还有许多选择,如七牛云、腾讯云、OneDrive等,这里我们用阿里云OSS做演示。

首先我们来到阿里云的OSS并登陆你的账号:对象存储OSS_云存储服务企业数据管理存储-阿里云 (aliyun.com)

直接点击管理控制台,在右边的Bucket管理点击创建Bucket。

Bucket的名称可以自己取一个,储存类型都有介绍,根据自己的需要选择,下面的服务可以按照我的配置来选择,然后点击确定创建一个新的Bucket。

进入到刚才创建好的Bucket概览页面内,我们需要记下的是Bucket名称、访问域名下外网访问的Endpoint(地域节点)

然后在右上角头像找到AccessKey管理,点进去,创建一个新的AccessKey,记下ID和Secret。

现在我们回到CloudReve的管理面板,新建一个策略组选择阿里云OSS,将你上面记录的信息填写进去,完成后面的配置即可。

最后我们给一个用户组分配这个储存策略,那么这一个用户组下的用户上传的文件将会储存在你的OSS内。

  1. (可选)将网盘数据库转移到MySQL

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

[Database]
; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
Type = mysql
; MySQL 端口
Port = 3306
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd
; 字符集
Charset = utf8

我们只需要将上述配置进行修改后添加到conf.ini文件中,重启服务即可生效。

这里需要注意一个问题,当你转移数据库后可能会出现无法登陆的情况。我们可以直接前往数据库,进入用户数据表,将你的密码改成d7lOWa9vMZnZwxBz:5b8c8995833e8dc701604041524ab02b9b2e7e68

这时的管理员密码就是QXf9kGzF,登陆进去重新修改密码即可。 作者:可爱的小喵咪Cat https://www.bilibili.com/read/cv12730114 出处:bilibili

上一篇
下一篇