快速开始

获取 Cloudreve

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

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

启动 Cloudreve


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

#解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz

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

# 启动 Cloudreve
./cloudreve


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

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

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

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

可选部署流程

反向代理

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

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


在网站的server字段中加入:

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;
}


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

<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>

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,如果您要使用本地存储策略请更改大小为理论最大文件尺寸
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
                </rule>
                <rule name="Rerwite" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="http://localhost:5212/{R:0}" />
                </rule>
            </rules>
        </rewrite>
        <security>
            <requestFiltering allowDoubleEscaping="true">
                <requestLimits maxAllowedContentLength="60000000" />
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

进程守护

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

Systemd

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

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

[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
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

管理命令:

# 启动服务
systemctl start cloudreve

# 停止服务
systemctl stop cloudreve

# 重启服务
systemctl restart cloudreve

# 查看状态
systemctl status cloudreve

Supervisor

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

# 安装 supervisor
sudo yum install python-setuptools
sudo easy_install supervisor

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

编辑全局配置文件:

sudo vim /etc/supervisord.conf

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

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

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

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

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

[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: Cloudreve 主程序所在目录
  • command: Cloudreve 主程序绝对路径
  • stderr_logfile: 错误日志路径
  • stdout_logfile: 通常日志路径

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

supervisord -c /etc/supervisord.conf

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

# 启动
sudo supervisorctl start cloudreve

# 停止
sudo supervisorctl stop cloudreve

# 查看状态
sudo supervisorctl status cloudreve

Docker

使用之前,请确保您知道 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> 替换为该路径

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

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

运行

然后,运行 docker container:

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

Windows环境

docker run -itd -p 5211:5211 -p 5212:5212 -v "C:/cloudren":/root/app -v "D:/":/idc --name cloudreve localhost/cloudreve:latest ./cloudreve

Docker Compose

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

创建目录结构

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

运行

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

version: "3.8"
services:
  cloudreve:
    container_name: cloudreve
    image: cloudreve/cloudreve:latest
    restart: unless-stopped
    ports:
      - "5212:5212"
    volumes:
      - temp_data:/data
      - ./cloudreve/uploads:/cloudreve/uploads
      - ./cloudreve/conf.ini:/cloudreve/conf.ini
      - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
      - ./cloudreve/avatar:/cloudreve/avatar
    depends_on:
      - aria2
  aria2:
    container_name: aria2
    image: p3terx/aria2-pro
    restart: unless-stopped
    environment:
      - RPC_SECRET=your_aria_rpc_token
      - RPC_PORT=6800
    volumes:
      - ./aria2/config:/config
      - temp_data:/data
volumes:
  temp_data:
    driver: local
    driver_opts:
      type: none
      device: $PWD/data
      o: bind

运行镜像

# 后台运行模式,可以从 docker/docker-compose 的日志中获取默认管理员账户用户名和密码
docker-compose up -d

# 或者,直接运行,log 将会直接输出在当前控制台中,请注意退出之后保持当前容器运行
docker-compose up

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

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

更新

关闭当前运行的容器,此步骤不会删除挂载的配置文件以及相关目录

docker-compose down

如果此前已经拉取 docker 镜像,使用以下命令获取最新镜像

docker pull cloudreve/cloudreve

重复运行步骤即可

配置文件

配置文件

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

你也可以在启动时加入-c参数指定配置文件路径:

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

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

conf.ini

[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss
; 呈递客户端 IP 时使用的 Header
ProxyHeader = X-Forwarded-For

; 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
; 设置产生的 socket 文件的权限
Perm = 0666

; 数据库相关,如果你只想使用内置的 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 = utf8mb4
; SQLite 数据库文件路径
DBFile = cloudreve.db
; 进程退出前安全关闭数据库连接的缓冲时间
GracePeriod = 30
; 使用 Unix Socket 连接到数据库
UnixSocket = false

; 从机模式下的配置
[Slave]
; 通信密钥
Secret = 1234567891234567123456789123456712345678912345671234567891234567
; 回调请求超时时间 (s)
CallbackTimeout = 20
; 签名有效期
SignatureTTL = 60

; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false
SameSite = Default
Secure = lse

; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0

; 从机配置覆盖
[OptionOverwrite]
; 可直接使用 `设置名称 = 值` 的格式覆盖
max_worker_num = 50

配置案例

使用 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

更换数据库配置后,Cloudreve 会重新初始化数据库,原有的数据将会丢失。

使用 Redis

你可以在配置文件中加入 Redis 相关设置:

[Redis]
Server = 127.0.0.1:6379
Password = your password
DB = 0

请为 Cloudreve 指定未被其他业务使用的 DB,以避免冲突。

重启 Cloudreve 后,可注意控制台输出,确定 Cloudreve 是否成功连接 Redis 服务器。使用 Redis 后,以下内容将被 Redis 接管:

  • 用户会话(重启 Cloudreve 后不会再丢失登录会话)
  • 数据表高频记录查询缓存(如存储策略、设置项)
  • 回调会话
  • OneDrive 凭证

启用 HTTPS

如果您正在使用 Web 服务器反向代理 Cloudreve,推荐您在 Web 服务器中配置 SSL,本小节所阐述的启用方式只针对使用 Cloudreve 内置 Web 服务器的情境下有效。

在配置文件中加入:

[SSL]
Listen = :443
CertPath = C:\Users\i\Documents\fullchain.pem
KeyPath = C:\Users\i\Documents\privkey.pem

其中 CertPathKeyPath 分别为 SSL 证书和私钥路径。保存后重启 Cloudreve 生效。

覆盖从机节点的配置项

Cloudreve 的某些配置项是存储在数据库中的,但是从机节点并不会连接数据库,你可以在配置文件中覆盖相应的配置项。

比如,从机节点作为存储端运行时,你可以通过下面的配置设定从机生成的缩略图规格:

[OptionOverwrite]
thumb_width = 400
thumb_height = 300
thumb_file_suffix = ._thumb
thumb_max_task_count = -1
thumb_encode_method = jpg
thumb_gc_after_gen = 0
thumb_encode_quality = 85

如果从机节点作为离线下载节点使用,你可以通过下面的配置覆盖默认的重试、超时参数,以避免默认的数值过于保守导致文件转存失败:

[OptionOverwrite]
; 任务队列最多并行执行的任务数
max_worker_num = 50
; 任务队列中转任务传输时,最大并行协程数
max_parallel_transfer = 10
; 中转分片上传失败后重试的最大次数
chunk_retries = 10

离线下载

Cloudreve 的离线下载核心由 Aria2 驱动。正确配置并启用离线下载功能后,用户可以创建磁力链、HTTP、种子下载任务,由服务端下载完成后加入到用户文件中。

对于云存储策略,离线下载任务完成后,Cloudreve 会将所下载的文件转存到云存储端,在转存结束前,用户无法下载、管理已下载的文件。用户可以在前台任务队列中查看转存任务进度。

Cloudreve 支持“从机离线下载”,您可以将离线下载任务分流至多台服务器处理,避免这些任务过多占用主机的资源。每个负责处理离线下载任务的节点需要运行一组 Cloudreve 和 Aria2 实例。您可以按照管理面板中的节点添加向导指引配置并添加新节点。从机离线下载节点与用于从机存储策略的 节点本质上是一样的,您可以将从机 Cloudreve 实例同时用作存储节点和离线下载节点。如果您不需要从机节点处理离线下载任务,只想让当前主机 Cloudreve 处理离线下载,只需要编辑主机节点并配置 Aria2 相关信息即可。用户创建的离线下载任务会被轮流分配到所有可用的离线下载节点处理。

启用离线下载

Aria2 RPC 配置

Aria2 的安装、启动过程不在本文讨论范围之内。您需要在 Cloudreve 相同的机器上启动 Aria2。

推荐在日常启动流程中,先启动 Aria2,再启动 Cloudreve,这样 Cloudreve 可以向 Aria2 订阅事件通知,下载状态变更处理更及时。当然,如果没有这一流程,Cloudreve 也会通过轮询追踪任务状态。

在启动 Aria2 时,需要在其配置文件中启用 RPC 服务,并设定 RPC Secret,以便后续使用。

# 启用 RPC 服务
enable-rpc=true
# RPC监听端口
rpc-listen-port=6800
# RPC 授权令牌,可自行设定
rpc-secret=<your token>

接入 Cloudreve

前往 Cloudreve 的 管理面板-离线下载节点-添加/编辑 节点-离线下载,根据指引填写信息并测试是否可以与 Aria2 正常通信。

对于其中重要参数项的解释如下:

RPC 服务器地址

Aria2 RPC 服务器的地址,一般可填写为http://127.0.0.1:6800/ 。其中6800 为上文 Aria2 配置文件中指定的监听端口。您可以使用 WebSocket 通信,此处填写为ws://127.0.0.1:6800/

RPC Secret

上文中您在 Aria2 配置文件中设定的 RPC 授权令牌。

临时下载目录

Cloudreve 会指定 Aria2 将文件下载到此目录中,下载完成后 Cloudreve 会复制到指定的存储策略,并删除文件。此目录必须为绝对路径,否则 Cloudreve 在任务下载完成后会找不到文件。Windows 下指定的绝对路径应该携带盘符,比如G:\www\downloads

状态刷新间隔(秒)

指定针对每一个任务,Cloudreve 向 Aria2 轮询更新任务状态的间隔。用户再前台看到的任务进度不会实时更新,而是根据这里设定的间隔自动刷新。

全局任务参数

在此处指定 Cloudreve 创建 Aria2 下载任务时携带的额外参数,如果 Aria2 未与其他服务公共时,你也可以在 Aria2 的配置文件中指定这些参数。具体的可用参数可参考官方文档,以 JSON 的格式填写在这里。如果格式有误,可能会导致无法创建任务。以下为一个填写示例,指定了最大并行任务数和 Tracker 服务器列表:

{
    "max-concurrent-downloads": 10,
    "bt-tracker": [
        "udp://tracker.coppersurfer.tk:6969/announce",
        "udp://tracker.opentrackr.org:1337/announce",
        "udp://tracker.leechers-paradise.org:6969/announce"
    ]
}

您也可在用户组配置中,为每个用户组指定其特有的参数,比如限制最大下载速度等。具体格式与上述一致,不再复述。

用户组权限

对于您想要允许使用离线下载功能的用户组,请在用户组编辑页面开启离线下载使用权限。

常见问题

测试 Aria2 连接时提示无法请求 RPC 服务, Post "XXX": dial tcp XXX connect: connection refused

填写的 RPC 地址有误,无法连接,检查地址是否有误、Aria2 是否启动、端口是否与 Aria2 配置文件中指定的一致。

测试 Aria2 连接时提示 无法请求 RPC 服务, invalid character '<' looking for beginning of value

填写的 RPC 地址有误,可以连接,但其并不是 Aria2 的 RPC服务,请检查地址是否有误、端口是否正确。这一错误的原因一般是将 RPC 地址 填写为了某项 Web 服务的地址。

Cloudreve 任务列表里任务状态不更新/更新不及时

Cloudreve 会定期轮询任务状态,任务创建后状态不会实时更新,请耐心等待。您也可以在 管理面板-参数设置-离线下载-状态刷新间隔(秒)中调整更新频率。

BT 下载太慢/无速度

下载任务是由 Aria2 进行处理,无法通过 Cloudreve 做出优化。一个可能的解决方案是,手动添加 Tracker 服务器。你可以在 Aria2 配置文件中指定 Tracker:

bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce

以上指定的 Tracker 列表只是示例,你需要根据实际自己填写。你可以使用 trackerslist 项目中每日更新的最佳 Tracker 列表。

BT 任务进度100%后,任务仍长期处在”进行中“的列表中不被处理

默认情况下 Aria2 会对下载完成的 BT 任务进行做种,做种完成后才会被 Cloudreve 认定为已完成,并进行后续处理。您可以在 Aria2 配置文件中指定做种分享率或做种时间,当达到任一条件后,做种会停止:

# 做种分享率, 0为一直做种, 默认:1.0
seed-ratio=1.0
# 作种时间大于30分钟,则停止作种
seed-time=30

扩展文档预览/编辑

Cloudreve 会通过文件的扩展名自动选择预览器。Cloudreve 内置了多种文件格式的预览器,包括视频、音频、代码、文本、Office 文档等。其中 Office 文档预览器提供了较高的扩展性,你可以在 后台 - 参数设置 - 图像与预览 - 文件预览 中更换默认的文档预览服务地址。也可以通过开启 WOPI 集成,将 Office 文档预览器替换为更强大的预览/编辑器,并自主定义可被预览/编辑的文件扩展名。本文将介绍三种支持 WOPI 协议的服务的部署及对接方式。你也可以通过实现自己的 WOPI 客户端,扩展 Cloudreve 的预览编辑能力(不仅限于 Office 文档)。

Collabora Online (LibreOffice Online)

使用 Docker 部署 Collabora Online(官方文档):

docker pull collabora/code

docker run -t -d -p 127.0.0.1:9980:9980 \
           -e "aliasgroup1=<允许使用此服务的 Cloudreve 地址,包含明确端口>" \
           -e "username=<面板管理员用户名>" \
           -e "password=<面板管理员密码>" \
           --name code --restart always collabora/code

以官方演示站为例:

docker run -t -d -p 127.0.0.1:9980:9980 \
           -e "aliasgroup1=https://demo.cloudreve.org:443" \
           -e "username=<面板管理员用户名>" \
           -e "password=<面板管理员密码>" \
           --name code --restart always collabora/code
Collabora Online的端口默认是https协议,通过添加 -e 'extra_params=--o:ssl.enable=false' 参数可关闭

Container 启动后,配置 Nginx 或其他 Web 服务器反向代理 https://127.0.0.1:9980, 可参考 Proxy settings,确保反代后的服务能够被你的最终用户访问,你可以手动访问 <你的服务主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。

在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:

2023-06-23T07:44:37.png

OnlyOffice

OnlyOffice 在 6.4 版本后支持了 WOPI 协议,请参考 官方文档 部署你的 OnlyOffice 实例。推荐使用 Docker-DocumentServer 来快速部署。

参考 官方文档 配置 OnlyOffice 开启 WOPI 功能。如果使用 Docker,可在创建 Contianer 时指定 WOPI_ENABLEDtrue 来开启:

docker run -i -t -d -p 8080:80 -e WOPI_ENABLED=true onlyoffice/documentserver

你可以手动访问 <你的 OnlyOffice 主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。

在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:

2023-06-23T07:45:11.png

OnlyOffice 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 wopisrc 参数是否为预期的 Cloudreve 站点。

Office Online Server (On-Prem)

Office Online Server 是微软推出的可私有部署的 Office 在线文档服务。请参考 官方文档 在你的 Windows Server 上部署。

你可以手动访问 <你的 OnlyOffice 主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。

在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:

2023-06-23T07:45:34.png

Office Online Server 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 wopisrc 参数是否为预期的 Cloudreve 站点。

WOPI 协议

Web Application Open Platform Interface (WOPI) 协议是一种用于集成 Web 文档编辑器的协议,你可以在 微软的文档 中阅读详细的协议定义。Cloudreve 可以对接实现了 WOPI 协议的文档处理服务,用于扩展已有的文档预览和编辑能力。

兼容性

Cloudreve 对 WOPI REST 方法的实现情况如下表所示:

Method支持情况
CheckFileInfo
GetFile
Lock⚠️(可调用但无效果)
RefreshLock⚠️(可调用但无效果)
Unlock⚠️(可调用但无效果)
PutFile
PutRelativeFile
RenameFile

数据库脚本

Cloudreve 内置了一些常用数据库脚本,可用于日常维护、版本升级等操作。您可以在启动时添加命令行参数 --database-script <script name> 执行各个脚本。

校准用户容量

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

./cloudreve --database-script CalibrateUserStorage

重置管理员密码

以下数据库脚本可以重设初始管理员(即 UID 为 1 的用户)的密码,新密码会在命令行日志中输出,请注意保存。

./cloudreve --database-script ResetAdminPassword
最后修改:2025 年 04 月 04 日
如果觉得我的文章对你有用,请随意赞赏