快速开始

获取 Cloudreve

你可以在 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为cloudreve_版本号_操作系统_CPU架构.tar.gz 。比如,普通 64 位 Linux 系统上部署 3.0.0 版本,则应该下载cloudreve_3.0.0_linux_amd64.tar.gz

如果你想体验最新的功能特性,可以在 GitHub Actions 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用。

如果想要自行从源代码构建,请参阅以下章节:

{% content-ref url=”build.md” %} build.md {% endcontent-ref %}

启动 Cloudreve

{% tabs %} {% tab title=”Linux” %} Linux 下,直接解压并执行主程序即可:

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

{% endtab %}

{% tab title=”Windows” %} Windows 下,直接解压获取到的 zip 压缩包,启动 cloudreve.exe 即可。 {% endtab %} {% endtabs %}

Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户。

Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve。

以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让 Cloudreve 更好的工作,具体流程请参考下面的配置流程。

可选部署流程

反向代理

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

你需要在 Web 服务器中新建一个虚拟主机,完成所需的各项配置(如启用 HTTPS),然后在网站配置文件中加入反代规则:

{% tabs %} {% tab title=”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;
  6. # 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
  7. # client_max_body_size 20000m;
  8. }

{% endtab %}

{% tab title=”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>

{% endtab %}

{% tab title=”IIS” %}

1. 安装 IIS URL Rewrite 和 ARR 模块

如已安装,请跳过本步。

2. 启用并配置 ARR

打开 IIS,进入主页的 Application Request Routing Cache,再进入右边的 Server Proxy Settings…,勾选最上面的 Enable proxy,同时取消勾选下面的 Reverse rewrite host in response headers。点击右边的 应用 保存更改。

进入主页最下面的 配置编辑器 (Configuration Editor),转到 system.webServer/proxy 节点,调整 preserveHostHeaderTrue 后点击右边的 应用 保存更改。

如果不取消勾选反向重写主机头,会导致 Cloudreve API 无法返回正确的地址,导致无法预览图片视频等。

3. 配置反代规则

这是 web.config 文件的内容,将它放在目标网站根目录即可。此样例包括两个规则与一个限制:

  • HTTP to HTTPS redirect (强制 HTTPS,需要自行配置 SSL 后才可使用,不使用请删除该 rule)
  • Rerwite (反代)
  • requestLimits 中的 60000000 为传输文件大小限制,单位 byte,如果您要使用本地存储策略请更改大小为理论最大文件尺寸
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system.webServer>
  4. <rewrite>
  5. <rules>
  6. <rule name="HTTP to HTTPS redirect" stopProcessing="true">
  7. <match url=".*" />
  8. <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
  9. <add input="{HTTPS}" pattern="off" />
  10. </conditions>
  11. <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
  12. </rule>
  13. <rule name="Rerwite" stopProcessing="true">
  14. <match url=".*" />
  15. <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
  16. <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  17. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  18. </conditions>
  19. <action type="Rewrite" url="http://localhost:5212/{R:0}" />
  20. </rule>
  21. </rules>
  22. </rewrite>
  23. <security>
  24. <requestFiltering allowDoubleEscaping="true">
  25. <requestLimits maxAllowedContentLength="60000000" />
  26. </requestFiltering>
  27. </security>
  28. </system.webServer>
  29. </configuration>

{% endtab %} {% endtabs %}

进程守护

以下两种方式可任选其一。

Systemd

  1. # 编辑配置文件
  2. vim /usr/lib/systemd/system/cloudreve.service

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

  1. [Unit]
  2. Description=Cloudreve
  3. Documentation=https://docs.cloudreve.org
  4. After=network.target
  5. After=mysqld.service
  6. Wants=network.target
  7. [Service]
  8. WorkingDirectory=/PATH_TO_CLOUDREVE
  9. ExecStart=/PATH_TO_CLOUDREVE/cloudreve
  10. Restart=on-abnormal
  11. RestartSec=5s
  12. KillMode=mixed
  13. StandardOutput=null
  14. StandardError=syslog
  15. [Install]
  16. 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

Supervisor

首先安装supervisor,已安装的可以跳过。

  1. # 安装 supervisor
  2. sudo yum install python-setuptools
  3. sudo easy_install supervisor
  4. # 初始化全局配置文件
  5. sudo touch /etc/supervisord.conf
  6. sudo echo_supervisord_conf > /etc/supervisord.conf

编辑全局配置文件:

  1. sudo vim /etc/supervisord.conf

将文件底部的[include] 分区注释符号;删除,加入新的配置文件包含路径:

  1. [include]
  2. files = /etc/supervisor/conf/*.conf

创建 Cloudreve 应用配置所在文件目录,并创建打开配置文件:

  1. sudo mkdir -p /etc/supervisor/conf
  2. sudo vim /etc/supervisor/conf/cloudreve.conf

根据实际情况填写以下内容并保存:

  1. [program:cloudreve]
  2. directory=/home/cloudreve
  3. command=/home/cloudreve/cloudreve
  4. autostart=true
  5. autorestart=true
  6. stderr_logfile=/var/log/cloudreve.err
  7. stdout_logfile=/var/log/cloudreve.log
  8. environment=CODENATION_ENV=prod

其中以下配置项需要根据实际情况更改:

  • directory: Clopudreve 主程序所在目录
  • command: Cloudreve 主程序绝对路径
  • stderr_logfile: 错误日志路径
  • stdout_logfile: 通常日志路径

通过全局配置文件启动 supervisor:

  1. supervisord -c /etc/supervisord.conf

日后你可以通过以下指令管理 Cloudreve 进程:

  1. # 启动
  2. sudo supervisorctl start cloudreve
  3. # 停止
  4. sudo supervisorctl stop cloudreve
  5. # 查看状态
  6. sudo supervisorctl status cloudreve

Docker

我们提供官方的 docker image,支持三种架构 armv7, arm64 以及 amd64, 你可以使用以下命令部署

创建目录结构

确保运行之前:

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

或者,直接使用以下命令创建:

  1. mkdir -vp cloudreve/{uploads,avatar} \
  2. && touch cloudreve/conf.ini \
  3. && touch cloudreve/cloudreve.db

运行

然后,运行 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 Compose

除此之外,我们还提供 docker compose 部署,并且整合了离线下载服务 在此之前,需要创建 data 目录作为离线下载临时中转目录

创建目录结构

  1. mkdir -vp cloudreve/{uploads,avatar} \
  2. && touch cloudreve/conf.ini \
  3. && touch cloudreve/cloudreve.db \
  4. && mkdir -p aria2/config \
  5. && mkdir -p data/aria2 \
  6. && chmod -R 777 data/aria2

运行

然后将以下文件保存为 docker-compose.yml,放置于当前目录,与 cloudreve 同一层级,同时,修改文件中的 RPC_SECRET

  1. version: "3.8"
  2. services:
  3. cloudreve:
  4. container_name: cloudreve
  5. image: cloudreve/cloudreve:latest
  6. restart: unless-stopped
  7. ports:
  8. - "5212:5212"
  9. volumes:
  10. - temp_data:/data
  11. - ./cloudreve/uploads:/cloudreve/uploads
  12. - ./cloudreve/conf.ini:/cloudreve/conf.ini
  13. - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
  14. - ./cloudreve/avatar:/cloudreve/avatar
  15. depends_on:
  16. - aria2
  17. aria2:
  18. container_name: aria2
  19. image: p3terx/aria2-pro
  20. restart: unless-stopped
  21. environment:
  22. - RPC_SECRET=your_aria_rpc_token
  23. - RPC_PORT=6800
  24. volumes:
  25. - ./aria2/config:/config
  26. - temp_data:/data
  27. volumes:
  28. temp_data:
  29. driver: local
  30. driver_opts:
  31. type: none
  32. device: $PWD/data
  33. o: bind

运行镜像

  1. docker-compose up -d

在之后的控制面板中,按照如下配置

  1. [不可修改] RPC 服务器地址 => http://aria2:6800
  2. [可修改, 需保持和 docker-compose.yml 文件一致] RPC 授权令牌 => your_aria_rpc_token
  3. [不可修改] Aria2 用作临时下载目录的 节点上的绝对路径 => /data