拥有一个属于自己的网盘,无论是哪一方面都不会受到限制,日常可以用来保存一些媒体资源,还可以一键生成分享链接,或是邀请你的好朋友一起使用网盘。
那么本期来教大家从零开始搭建一个个人网盘。
首先需要准备的资源:一台配置好Nginx/Apache、宝塔面板的云服务器
- 下载网盘程序
那么本期使用的网盘是CloudReve,一个优秀的Material设计的网盘。当然现存的优秀网盘还有KodExplorer(可视化图形)、Dzzoffice(适合团队使用)等
首先我们来到CloudReve的Github:https://github.com/cloudreve/Cloudreve/releases
点进去可以看到目前的最新版,这里我演示使用的是最新3.3.2版本
继续向下滚动就会看到Assets下面有许多个压缩包,选择适合你系统的即可
这里我是Linux系统,所以下载下来的是一个tar.gz文件
- 安装并启动网盘
下载好网盘的程序包之后,来到宝塔面板。
找到左边的网站,点进去添加一个新的站点,这里如果你绑定了域名就填你的域名,如果没有就填服务器ip。如果你有M有SQL数据库可以选择创建一个,后面会教如何转移数据库,不创建则使用SQLite。
创建好了之后,在网站内找到刚刚创建好网站的根目录,可以直接点进去。
点击上传,将刚才下载好的压缩包上传上去并解压到当前目录。
这里我解压完是一个没有后缀名的cloudreve文件,先不用管它。
现在我们可以来试着启动一下它,连接上你的服务器。
用cd命令到你的cloudreve文件目录下,再进行如下操作:
赋予执行权限
chmod +x ./cloudreve
启动 CloudReve
./cloudreve
执行完这两条命令,等待CloudReve启动后可以看到
记下管理员账号密码和开始监听的端口,我们通过刚才绑定的域名:端口来访问,也就是xxx.xxxx.xxx:5212
我们使用刚才的管理员账号密码登录进去,这样我们就可以直接开始使用了
现在你可以直接在网盘里面上传文件,文件储存在服务器本地。
- 系统进程守护
由于我们现在是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的进程守护。
- 配置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 用户
你可以直接在这里添加一个新用户,或更改现有用户的一些设置。
- (可选)将网盘对接到阿里云OSS
注意:在使用OSS前,有必要先了解OSS的计费标准,以免过度使用
我们会发现添加储存策略中还有许多选择,如七牛云、腾讯云、OneDrive等,这里我们用阿里云OSS做演示。
首先我们来到阿里云的OSS并登陆你的账号:对象存储OSS_云存储服务企业数据管理存储-阿里云 (aliyun.com)
直接点击管理控制台,在右边的Bucket管理点击创建Bucket。
Bucket的名称可以自己取一个,储存类型都有介绍,根据自己的需要选择,下面的服务可以按照我的配置来选择,然后点击确定创建一个新的Bucket。
进入到刚才创建好的Bucket概览页面内,我们需要记下的是Bucket名称、访问域名下外网访问的Endpoint(地域节点)
然后在右上角头像找到AccessKey管理,点进去,创建一个新的AccessKey,记下ID和Secret。
现在我们回到CloudReve的管理面板,新建一个策略组选择阿里云OSS,将你上面记录的信息填写进去,完成后面的配置即可。
最后我们给一个用户组分配这个储存策略,那么这一个用户组下的用户上传的文件将会储存在你的OSS内。
- (可选)将网盘数据库转移到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