部署Cloudreve创建个人网盘

Cloudreve 是什么?

Cloudreve 可以快速搭建起公私兼备的网盘系统。其在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。

  • 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
  • 上传/下载 支持客户端直传,支持下载限速
  • 可对接 Aria2 离线下载,可使用多个从机机点分担下载任务
  • 在线 压缩/解压缩、多文件打包下载
  • 覆盖全部存储策略的 WebDAV 协议支持
  • 拖拽上传、目录上传、流式上传处理
  • 多用户、用户组
  • 创建文件、目录的分享链接,可设定自动过期
  • 常见视频、图像、音频、文本、Office 文档在线预览
  • 自定义配色、黑暗模式、PWA 应用、全站单页应用
  • All-In-One 打包,开箱即用
  • Docker 部署支持

直接部署方式:

下载安装

Github releases 页面下载适合服务器架构的软件包,然后

# 解压获取到的主程序:
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz
# 赋予执行权限:
chmod +x ./cloudreve
# 启动 Cloudreve:
./cloudreve

在首次启动时,会创建初始管理员账号,需注意保管管理员密码,此密码只会在首次启动时出现。如果忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户。
Cloudreve 默认会监听5212端口。此时可以在浏览器中访问 http://服务器IP:5212 进入。

更好一些的启动方式是将其加入到 Systemd 的进程守护中去:
首先新建并编辑守护配置文件 /usr/lib/systemd/system/cloudreve.service

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

[Service]
# 将 PATH_TO_CLOUDREVE 替换为程序所在目录
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 start cloudreve
# 停止服务
systemctl stop cloudreve
# 重启服务
systemctl restart cloudreve
# 查看状态
systemctl status cloudreve

详细配置文件

首次启动时,Cloudreve 会在同级目录下创建名为conf.ini的配置文件,可以修改此文件进行一些参数的配置,保存后需要重新启动 Cloudreve 生效。
也可以在启动时加入-c参数指定配置文件路径:
./cloudreve -c /path/to/conf.ini

一个完整的配置文件示例如下:

[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss

; SSL 相关
[SSL]
; SSL 监听端口
Listen = :443
; 证书路径
CertPath = <PATH TO ssl_key>/fullchain.pem
; 私钥路径
KeyPath = <PATH TO ssl_key>/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 = 12345678912345671234567891234567****
; 回调请求超时时间 (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
; 最大并行执行缩略图生成的数量,填写 -1 时会根据 CPU 核心数自动决定
MaxTaskCount = -1
; 可填写 jpg / png
EncodeMethod = jpg
; 是否在缩略图生成完毕后立刻进行垃圾回收
GCAfterGen = false
; 缩略图质量
EncodeQuality = 85

并不是所有内容都需要,按需增减即可。
其中比较有用的是

  • [Database]小结 控制数据库的种类和连接
  • [Redis]小结 以使用Redis加快页面访问速度
  • [SSL]小结 添加HTTPS方式增强安全性

Docker 方式部署

创建基础文件夹

  • <PATH TO uploads> 上传目录
  • <PATH TO config> 配置文件存放目录
  • <PATH TO db> 数据库目录
  • <PATH TO avatar> avatar头像目录
  • <PATH TO ssl_key> SSL证书目录

创建配置文件

<PATH TO config> 目录内新建 conf.ini 文件,内容如下:

# conf.ini
[Database]
DBFile = /cloudreve/db/cloudreve.db

# 若要启用HTTPS就添加如下内容
# crt_file 和 key_file 替换为自己的ssl证书
[SSL]
Listen = :443
CertPath = /etc/ssl_key/crt_file.crt
KeyPath = /etc/ssl_key/key_file.key

启动容器

docker run -d \
  --name cloudreve \
  -e PUID=1000 \ # optional
  -e PGID=1000 \ # optional
  -e TZ="Asia/Shanghai" \ # optional
  -p 5212:5212 \
  --restart=unless-stopped \
  -v <PATH TO uploads>:/cloudreve/uploads \
  -v <PATH TO config>:/cloudreve/config \
  -v <PATH TO db>:/cloudreve/db \
  -v <PATH TO avatar>:/cloudreve/avatar \
  -v <PATH TO ssl_key>:/etc/ssl_key \
  xavierniu/cloudreve
  • 首次启动后请执行 docker logs -f cloudreve 获取初始密码。

为了方便管理,可以使用 docker-compose 或者在 Portainer 中用 Stack 部署

version: "3.1"
services:
  cloudreve:
    image: xavierniu/cloudreve:latest
    container_name: cloudreve
    network_mode: host
    ports:
      - "5212:5212"
    environment:
      - PUID=1000
      - PGID=100
    volumes:
      - <PATH TO uploads>:/cloudreve/uploads
      - <PATH TO config>:/cloudreve/config
      - <PATH TO db>:/cloudreve/db
      - <PATH TO avatar>:/cloudreve/avatar
      - <PATH TO ssl_key>:/etc/nginx/ssl_key
    restart: unless-stopped
  • 首次启动后请执行 docker logs -f cloudreve 获取初始密码。
  • 若使用 Portainer 则直接查看log获取初始密码。

升级

首先停止并移除正在运行的容器,然后拉取最新镜像

docker stop cloudreve \
  && docker rm cloudreve \
  && docker pull xavierniu/cloudreve

之后重复上面的运行步骤再次启动容器即可。

《部署Cloudreve创建个人网盘》 作者:whwtf ;固定链接:https://blog.whwtf.com/index.php/2022032262.html
上一篇
下一篇