0


GitHub开源的网盘系统-Cloudreve

Cloudeve

项目地址

  • 特性: ☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 、S3兼容协议 作为存储端 📤 上传/下载 支持客户端直传,支持下载限速 💾 可对接 Aria2 离线下载,可使用多个从机节点分担下载任务 📚 在线 压缩/解压缩、多文件打包下载 💻 覆盖全部存储策略的 WebDAV 协议支持 ⚡ 拖拽上传、目录上传、流式上传处理 🗃️ 文件拖拽管理 👩‍👧‍👦 多用户、用户组、多存储策略 🔗 创建文件、目录的分享链接,可设定自动过期 👁️‍🗨️ 视频、图像、音频、 ePub 在线预览,文本、Office 文档在线编辑 🎨 自定义配色、黑暗模式、PWA 应用、全站单页应用、国际化支持 🚀 All-In-One 打包,开箱即用

本地安装部署

使用环境Ubuntu2404-server

软件包下载

  1. tar -xf cloudreve_3.8.3_linux_amd64.tar.gz
  1. chmod +x ./cloudreve

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

  1. ./cloudreve -c /path/to/conf.ini

完整的配置文件示例如下

  1. [System]; 运行模式
  2. Mode = master
  3. ; 监听端口
  4. Listen = :5212
  5. ; 是否开启 Debug
  6. Debug =false; Session 密钥, 一般在首次启动时自动生成
  7. SessionSecret =23333; Hash 加盐, 一般在首次启动时自动生成
  8. HashIDSalt = something really hard to guss
  9. ; 呈递客户端 IP 时使用的 Header
  10. ProxyHeader = X-Forwarded-For
  11. ; SSL 相关
  12. [SSL]; SSL 监听端口
  13. Listen = :443
  14. ; 证书路径
  15. CertPath = C:\Users\i\Documents\fullchain.pem
  16. ; 私钥路径
  17. KeyPath = C:\Users\i\Documents\privkey.pem
  18. ; 启用 Unix Socket 监听
  19. [UnixSocket]
  20. Listen = /run/cloudreve/cloudreve.sock
  21. ; 设置产生的 socket 文件的权限
  22. Perm = 0666
  23. ; 数据库相关,如果你只想使用内置的 SQLite 数据库,这一部分直接删去即可
  24. [Database]; 数据库类型,目前支持 sqlite/mysql/mssql/postgres
  25. Type = mysql
  26. ; MySQL 端口
  27. Port =3306; 用户名
  28. User = root
  29. ; 密码
  30. Password = root
  31. ; 数据库地址
  32. Host =127.0.0.1
  33. ; 数据库名称
  34. Name = v3
  35. ; 数据表前缀
  36. TablePrefix = cd_
  37. ; 字符集
  38. Charset = utf8mb4
  39. ; SQLite 数据库文件路径
  40. DBFile = cloudreve.db
  41. ; 进程退出前安全关闭数据库连接的缓冲时间
  42. GracePeriod =30; 使用 Unix Socket 连接到数据库
  43. UnixSocket =false; 从机模式下的配置
  44. [Slave]; 通信密钥
  45. Secret =1234567891234567123456789123456712345678912345671234567891234567; 回调请求超时时间 (s)
  46. CallbackTimeout =20; 签名有效期
  47. SignatureTTL =60; 跨域配置
  48. [CORS]
  49. AllowOrigins = *
  50. AllowMethods = OPTIONS,GET,POST
  51. AllowHeaders = *
  52. AllowCredentials =false
  53. SameSite = Default
  54. Secure = lse
  55. ; Redis 相关
  56. [Redis]
  57. Server =127.0.0.1:6379
  58. Password =
  59. DB =0; 从机配置覆盖
  60. [OptionOverwrite]; 可直接使用 `设置名称 = 值` 的格式覆盖
  61. max_worker_num =50

这里使用默认启动

  1. ./cloudreve
  1. root@huhy:~# ./cloudreve
  2. ___ _ _
  3. / __\ | ___ _ _ __||_ __ _____ _____
  4. //||/ _ \||||/ _ | '__/ _ \ \ // _ \
  5. //___||(_)||_||(_|||| __/\ V / __/
  6. \____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|
  7. V3.8.3Commit#88409cc Pro=false================================================[Info]2024-08-2701:23:25 Initializing database connection...[Info]2024-08-2701:23:25Start initializing databaseschema...[Info]2024-08-2701:23:25 Admin user name: admin@cloudreve.org[Info]2024-08-2701:23:25 Admin password: 0Sw7Myff
  8. [Info]2024-08-2701:23:25Start executing database script "UpgradeTo3.4.0".[Info]2024-08-2701:23:25 Finish initializing databaseschema.[Info]2024-08-2701:23:25 Initialize task queue with WorkerNum =10[Info]2024-08-2701:23:25 Initialize crontab jobs...[Info]2024-08-2701:23:25Current running mode: Master.[Info]2024-08-2701:23:25 Listening to":5212"

界面IP登录:IP:5212

在这里插入图片描述
用户名和密码在脚本执行后初始化信息可查看 admin@cloudreve.org / 0Sw7Myff

在这里插入图片描述

启动后会同级目录生成几个配置文件

  • uploads 存放网盘的文件目录
  • cloudreve.db 数据库缓存
  • conf.ini 初始化主配文件信息

配置反向代理

可选参数;

在自用或者小规模使用的场景下,你完全可以使用 Cloudreve 内置的 Web 服务器。但是如果你需要使用 HTTPS,亦或是需要与服务器上其他 Web 服务共存时,你可能需要使用主流 Web 服务器反向代理 Cloudreve ,以获得更丰富的扩展功能。

nginx配置;在网站的server字段中加入:

  1. location / {
  2. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  3. proxy_set_header Host $http_host;
  4. proxy_redirect off;
  5. proxy_pass http://127.0.0.1:5212;# 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸# client_max_body_size 20000m;}

apache配置;在VirtualHost字段下加入反代配置项ProxyPass,比如:

  1. <VirtualHost *:80>
  2. ServerName myapp.example.com
  3. ServerAdmin webmaster@example.com
  4. DocumentRoot /www/myapp/public
  5. # 以下为关键部分
  6. AllowEncodedSlashes NoDecode
  7. ProxyPass "/""http://127.0.0.1:5212/" nocanon
  8. </VirtualHost>

配置进程守护

编辑配置文件

  1. vi /usr/lib/systemd/system/cloudreve.service

将下文 PATH_TO_CLOUDREVE 更换为程序所在目录

  1. [Unit]Description=Cloudreve
  2. Documentation=https://docs.cloudreve.org
  3. After=network.target
  4. After=mysqld.service
  5. Wants=network.target
  6. [Service]WorkingDirectory=/PATH_TO_CLOUDREVE
  7. ExecStart=/PATH_TO_CLOUDREVE/cloudreve
  8. Restart=on-abnormal
  9. RestartSec=5s
  10. KillMode=mixed
  11. StandardOutput=null
  12. StandardError=syslog
  13. [Install]WantedBy=multi-user.target
  1. # 更新配置
  2. systemctl daemon-reload
  3. # 启动服务
  4. systemctl start cloudreve
  5. # 设置开机启动
  6. systemctl enable cloudreve
  1. # 启动服务
  2. systemctl start cloudreve
  3. # 停止服务
  4. systemctl stop cloudreve
  5. # 重启服务
  6. systemctl restart cloudreve
  7. # 查看状态
  8. systemctl status cloudreve
  1. [root@localhost ~]# systemctl enable cloudreve
  2. Created symlink from /etc/systemd/system/multi-user.target.wants/cloudreve.service to /usr/lib/systemd/system/cloudreve.service.
  3. [root@localhost ~]# systemctl start cloudreve[root@localhost ~]# systemctl status cloudreve
  4. cloudreve.service - Cloudreve
  5. Loaded: loaded (/usr/lib/systemd/system/cloudreve.service; enabled; vendor preset: disabled)
  6. Active: active (running) since Sat 2024-09-21 03:35:47 EDT; 4s ago
  7. Docs: https://docs.cloudreve.org
  8. Main PID: 12421(cloudreve)
  9. CGroup: /system.slice/cloudreve.service
  10. └─12421 /root/cloudreve
  11. Sep 21 03:35:47 localhost.localdomain systemd[1]: Started Cloudreve.
  12. [root@localhost ~]#

如果忘记密码了!可重置

  1. [root@localhost ~]# ./cloudreve --database-script ResetAdminPassword
  2. ___ _ _
  3. / __\| ___ _ _ __||_ __ _____ _____
  4. / / ||/ _ \||||/ _ | '__/ _ \\ / / _ \
  5. / /___||(_)||_||(_|||| __/\ V / __/
  6. \____/|_|\___/ \__,_|\__,_|_|\___|\_/ \___|
  7. V3.8.3 Commit #88409cc Pro=false================================================[Info]2024-09-21 04:05:46 Initializing database connection...
  8. [Info]2024-09-21 04:05:46 Database version fulfilled, skip schema migration.
  9. [Info]2024-09-21 04:05:46 Initialize task queue with WorkerNum =10[Info]2024-09-21 04:05:46 Initialize crontab jobs...
  10. [Info]2024-09-21 04:05:46 Start executing database script "ResetAdminPassword".[Info]2024-09-21 04:05:46 Initial admin user password changed to:sumqIqvO
  11. [Info]2024-09-21 04:05:46 Finish executing database script "ResetAdminPassword".

校准用户容量
如果因为系统故障、手动操作数据库记录导致用户已用空间与实际不符时,你可以运行以下数据库脚本,Cloudreve 会重新校准所有已注册用户的容量使用。

  1. ./cloudreve --database-script CalibrateUserStorage

使用docker部署

使用环境Ubuntu2404

请确保运行之前:

  • 手动创建 conf.ini 空文件或者符合 Cloudreve 配置文件规范的 conf.ini, 并将 <path_to_your_config> 替换为该路径
  • 手动创建 cloudreve.db 空文件, 并将 <path_to_your_db> 替换为该路径
  • 手动创建 uploads 文件夹, 并将 <path_to_your_uploads> 替换为该路径
  • 手动创建 avatar 文件夹,并将 <path_to_your_avatar> 替换为该路径

运行 docker container:注意替换路径

  1. docker run -d \
  2. -p 5212:5212 \
  3. --mount type=bind,source=<path_to_your_config>,target=/cloudreve/conf.ini \
  4. --mount type=bind,source=<path_to_your_db>,target=/cloudreve/cloudreve.db \
  5. -v <path_to_your_uploads>:/cloudreve/uploads \
  6. -v <path_to_your_avatar>:/cloudreve/avatar \
  7. cloudreve/cloudreve:latest

安装docker

  1. apt -y install apt-transport-https ca-certificates curl software-properties-common
  2. curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg |sudo apt-key add -
  3. add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get -y install docker-ce
  1. systemctl enable --now docker

opt下创建相关的文件和文件夹

  1. mkdir -p /opt/cloudreve/uploads
  2. mkdir /opt/cloudreve/avatar
  3. touch /opt/cloudreve/conf.ini
  4. touch /opt/cloudreve/cloudreve.db

这个镜像拉取需要先禁用ipv6拉取

  1. cat /etc/docker/daemon.json
  1. {
  2. "ipv6": false
  3. }
  1. systemctl daemon-reload
  2. systemctl restart docker
  1. docker pull cloudreve/cloudreve:latest
  1. root@huhy~# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. cloudreve/cloudreve latest 328970d33c60 11 months ago 108MB

运行 Docker 容器

  1. docker run -d \
  2. -p 5212:5212 \
  3. --mount type=bind,source=/opt/cloudreve/conf.ini,target=/cloudreve/conf.ini \
  4. --mount type=bind,source=/opt/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db \
  5. -v /opt/cloudreve/uploads:/cloudreve/uploads \
  6. -v /opt/cloudreve/avatar:/cloudreve/avatar \
  7. cloudreve/cloudreve:latest
标签: github

本文转载自: https://blog.csdn.net/m0_56363537/article/details/141597645
版权归原作者 huhy~ 所有, 如有侵权,请联系我们删除。

“GitHub开源的网盘系统-Cloudreve”的评论:

还没有评论