获取 Cloudreve

你可以在 Cloudreve 的 GitHub Release 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为cloudreve_版本号_操作系统_CPU架构.tar.gz。比如,普通64位Linux系统上部署3.0.0版本,则应该下载cloudreve_3.0.0_linux_amd64.tar.gz
如果你想体验最新的功能特性,可以在 Cloudreve 的 GitHub Actions 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用

启动 Cloudreve

Linux 启动 Cloudreve

Linux下,直接解压并执行主程序即可:

1
2
3
4
5
6
7
8
#解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

# 赋予执行权限
chmod +x ./cloudreve

# 启动 Cloudreve
./cloudreve

Windows 启动 Cloudreve

Windows下,直接解压获取到的 zip 压缩包,启动 cloudreve.exe 即可

Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的cloudreve.db,重新启动主程序以初始化新的管理员账户
Cloudreve 默认会监听5212端口。你可以在浏览器中访问http://服务器IP:5212进入 Cloudreve
以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让Cloudreve更好的工作,具体流程请参考下面的配置流程

可选部署流程

反向代理

在自用或者小规模使用的场景下,你完全可以使用 Cloudreve 内置的 Web 服务器。但是如果你需要使用HTTPS,亦或是需要与服务器上其他 Web 服务共存时,你可能需要使用主流 Web 服务器反向代理 Cloudreve ,以获得更丰富的扩展功能
你需要在Web服务器中新建一个虚拟主机,完成所需的各项配置(如启用HTTPS),然后在网站配置文件中加入反代规则:

NGINX 反代

在网站的server字段中加入:

1
2
3
4
5
6
7
8
9
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5212;

# 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
# client_max_body_size 20000m;
}

Apache

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

1
2
3
4
5
6
7
8
9
10
<VirtualHost *:80>
ServerName myapp.example.com
ServerAdmin webmaster@example.com
DocumentRoot /www/myapp/public

# 以下为关键部分
AllowEncodedSlashes NoDecode
ProxyPass "/" "http://127.0.0.1:5212/" nocanon

</VirtualHost>

进程守护

以下两种方式可任选其一

Systemd

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

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

一定要记住要更换PATH_TO_CLOUDREVE为你的程序所在目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
After=mysqld.service
Wants=network.target

[Service]
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
1
2
3
4
5
6
7
8
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令:

1
2
3
4
5
6
7
8
9
10
11
# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

Supervisor

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

1
2
3
4
5
6
7
# 安装 supervisor
sudo yum install python-setuptools
sudo easy_install supervisor

# 初始化全局配置文件
sudo touch /etc/supervisord.conf
sudo echo_supervisord_conf > /etc/supervisord.conf

编辑全局配置文件:

1
sudo vim /etc/supervisord.conf

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

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

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

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

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

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

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

  • directory: Clopudreve 主程序所在目录
  • command: Cloudreve 主程序绝对路径
  • stderr_logfile: 错误日志路径
  • stdout_logfile: 通常日志路径
    通过全局配置文件启动supervisor:
    1
    supervisord -c /etc/supervisord.conf
    日后你可以通过以下指令管理 Cloudreve 进程:
    1
    2
    3
    4
    5
    6
    7
    8
    # 启动
    sudo supervisorctl start cloudreve

    # 停止
    sudo supervisorctl stop cloudreve

    # 查看状态
    sudo supervisorctl status cloudreve

    Docker

    你可以选择使用以下镜像部署:
  • xavierniu/cloudreve
  • littleplus/Cloudreve-Docker
  • awesome-builder/Cloudreve

    Docker快速开始

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 下载
    docker pull xavierniu/cloudreve

    # 创建
    mkdir -p ~/cloudreve/uploads \
    && mkdir -p ~/cloudreve/avatar \
    && touch ~/cloudreve/conf.ini \
    && touch ~/cloudreve/cloudreve.db

    # 启动
    docker run -d \
    --name cloudreve \
    -e PUID=$UID \
    -e PGID=$GID \
    -e TZ="Asia/Shanghai" \
    -p 5212:5212 \
    --restart=unless-stopped \
    -v /cloudreve/uploads:/cloudreve/uploads \
    -v ~/cloudreve/conf.ini:/cloudreve/conf.ini \
    -v ~/cloudreve/cloudreve.db:/cloudreve/cloudreve.db \
    -v ~/cloudreve/avatar:/cloudreve/avatar \
    xavierniu/cloudreve
    为了得到初始信息,需要执行docker logs -f cloudreve获取初始密码

    端口设置

    注意,此时端口为5212,需要分别在云服务器提供商及宝塔面板中开启此端口。
    如需绑定子域名,也需要在云服务器提供商处添加DNS解析,并在宝塔中配置反代到5212.

    离线下载

    安装aira2

    这里我们使用了aira2的一个docker镜像,号称完美配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    docker pull p3terx/aria2-pro

    # 这里的RPC_SECRET需要自己生成一个token
    docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=[token] \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v $PWD/aria2-config:/config \
    -v $PWD/aria2-downloads:/downloads \
    p3terx/aria2-pro

    安装AriaNg的UI

    随后我们需要配置一个UI方便使用,这里我们仍然用p3terx的镜像:
    1
    2
    3
    4
    5
    6
    docker run -d \
    --name ariang \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -p 6880:6880 \
    p3terx/ariang
    现在我们在http:ip:6880中就可以看到UI界面了(如果不行记得放行端口),之后我们需要进一步连接aria2和AriaNg,只需要在AriaNg设置中填写刚刚我们设置的RPC密钥即可:
    1
    当Aria2状态显示已连接表明成功了

    连接Cloudreve

    在设置中配置服务器地址,密钥等信息即可,如下:
    2
    测试连接成功后即可使用离线下载服务了!