# 快速开始 ## 获取 Cloudreve 你可以在 [GitHub Release](https://github.com/cloudreve/Cloudreve/releases) 页面获取已经构建打包完成的主程序。其中每个版本都提供了常见系统架构下可用的主程序,命名规则为`cloudreve_版本号_操作系统_CPU架构.tar.gz` 。比如,普通 64 位 Linux 系统上部署 3.0.0 版本,则应该下载`cloudreve_3.0.0_linux_amd64.tar.gz`。 如果你想体验最新的功能特性,可以在 [GitHub Actions](https://github.com/cloudreve/Cloudreve/actions) 中下载每次 commit 后构建的开发版。注意,开发版并不稳定,无法用于生产用途,且不保证完全可用。 ## 启动 Cloudreve [tabs] [tab name="Linux" active="true"] Linux 下,直接解压并执行主程序即可: ```bash #解压获取到的主程序 tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz # 赋予执行权限 chmod +x ./cloudreve # 启动 Cloudreve ./cloudreve ``` [/tab] [tab name="Windows"] Windows 下,直接解压获取到的 zip 压缩包,启动 `cloudreve.exe` 即可。 [/tab] [/tabs] Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的`cloudreve.db`,重新启动主程序以初始化新的管理员账户。 Cloudreve 默认会监听`5212`端口。你可以在浏览器中访问`http://服务器IP:5212`进入 Cloudreve。 以上步骤操作完后,最简单的部署就完成了。你可能需要一些更为具体的配置,才能让 Cloudreve 更好的工作,具体流程请参考下面的配置流程。 ## 可选部署流程 ### 反向代理 在自用或者小规模使用的场景下,你完全可以使用 Cloudreve 内置的 Web 服务器。但是如果你需要使用 HTTPS,亦或是需要与服务器上其他 Web 服务共存时,你可能需要使用主流 Web 服务器反向代理 Cloudreve ,以获得更丰富的扩展功能。 你需要在 Web 服务器中新建一个虚拟主机,完成所需的各项配置(如启用 HTTPS),然后在网站配置文件中加入反代规则: [tabs] [tab name="NGINX" active="true"] 在网站的`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; } ``` [/tab] [tab name="Apache"] 在`VirtualHost`字段下加入反代配置项`ProxyPass`,比如: ```markup ServerName myapp.example.com ServerAdmin webmaster@example.com DocumentRoot /www/myapp/public # 以下为关键部分 AllowEncodedSlashes NoDecode ProxyPass "/" "http://127.0.0.1:5212/" nocanon ``` [/tab] [tab name="IIS"] #### 1. 安装 IIS URL Rewrite 和 ARR 模块 - URL Rewrite: [点击下载](https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads) - ARR: [点击下载](https://www.iis.net/downloads/microsoft/application-request-routing#additionalDownloads) 如已安装,请跳过本步。 #### 2. 启用并配置 ARR 打开 IIS,进入主页的 **Application Request Routing Cache**,再进入右边的 **Server Proxy Settings...**,勾选最上面的 **Enable proxy**,同时取消勾选下面的 **Reverse rewrite host in response headers**。点击右边的 应用 保存更改。 进入主页最下面的 **配置编辑器 (Configuration Editor)**,转到 `system.webServer/proxy` 节点,调整 **preserveHostHeader** 为 **True** 后点击右边的 应用 保存更改。 如果不取消勾选反向重写主机头,会导致 Cloudreve API 无法返回正确的地址,导致无法预览图片视频等。 #### 3. 配置反代规则 这是 `web.config` 文件的内容,将它放在目标网站根目录即可。此样例包括两个规则与一个限制: - HTTP to HTTPS redirect (强制 HTTPS,需要自行配置 SSL 后才可使用,不使用请删除该 rule) - Rerwite (反代) - `requestLimits` 中的 `60000000` 为传输文件大小限制,单位 byte,如果您要使用本地存储策略请更改大小为理论最大文件尺寸 ```xml ``` [/tab] [/tabs] ### 进程守护 以下两种方式可任选其一。 #### Systemd ```bash # 编辑配置文件 vim /usr/lib/systemd/system/cloudreve.service ``` 将下文 `PATH_TO_CLOUDREVE` 更换为程序所在目录: ```bash [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 ``` ```bash # 更新配置 systemctl daemon-reload # 启动服务 systemctl start cloudreve # 设置开机启动 systemctl enable cloudreve ``` 管理命令: ```bash # 启动服务 systemctl start cloudreve # 停止服务 systemctl stop cloudreve # 重启服务 systemctl restart cloudreve # 查看状态 systemctl status cloudreve ``` #### Supervisor 首先安装`supervisor`,已安装的可以跳过。 ```bash # 安装 supervisor sudo yum install python-setuptools sudo easy_install supervisor # 初始化全局配置文件 sudo touch /etc/supervisord.conf sudo echo_supervisord_conf > /etc/supervisord.conf ``` 编辑全局配置文件: ```bash sudo vim /etc/supervisord.conf ``` 将文件底部的`[include]` 分区注释符号`;`删除,加入新的配置文件包含路径: ```bash [include] files = /etc/supervisor/conf/*.conf ``` 创建 Cloudreve 应用配置所在文件目录,并创建打开配置文件: ```bash sudo mkdir -p /etc/supervisor/conf sudo vim /etc/supervisor/conf/cloudreve.conf ``` 根据实际情况填写以下内容并保存: ```bash [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: ```bash supervisord -c /etc/supervisord.conf ``` 日后你可以通过以下指令管理 Cloudreve 进程: ```bash # 启动 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`, 并将 ` ` 替换为该路径 > 2. 手动创建 `cloudreve.db` 空文件, 并将 ` ` 替换为该路径 > 3. 手动创建 `uploads` 文件夹, 并将 `` 替换为该路径 > 4. 手动创建 `avatar` 文件夹,并将 `` 替换为该路径 或者,直接使用以下命令创建: ```bash mkdir -vp cloudreve/{uploads,avatar} \ && touch cloudreve/conf.ini \ && touch cloudreve/cloudreve.db ``` ### 运行 然后,运行 docker container: ```bash docker run -d \ -p 5212:5212 \ --mount type=bind,source=,target=/cloudreve/conf.ini \ --mount type=bind,source=,target=/cloudreve/cloudreve.db \ -v :/cloudreve/uploads \ -v :/cloudreve/avatar \ cloudreve/cloudreve:latest ``` Windows环境 ```bash docker run -itd --restart always -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` 目录作为离线下载临时中转目录 ### 创建目录结构 ```bash 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` ```yml 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 ``` 运行镜像 ```bash # 后台运行模式,可以从 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` ### 更新 关闭当前运行的容器,此步骤不会删除挂载的配置文件以及相关目录 ```bash docker-compose down ``` 如果此前已经拉取 docker 镜像,使用以下命令获取最新镜像 ```bash docker pull cloudreve/cloudreve ``` 重复运行步骤即可 # 配置文件 ## 配置文件 首次启动时,Cloudreve 会在同级目录下创建名为`conf.ini`的配置文件,你可以修改此文件进行一些参数的配置,保存后需要重新启动 Cloudreve 生效。 你也可以在启动时加入`-c`参数指定配置文件路径: ``` ./cloudreve -c /path/to/conf.ini ``` 一个完整的配置文件示例如下: [collapse status="true" title="conf.ini"] ```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 ``` [/collapse] ## 配置案例 ### 使用 MySQL 默认情况下,Cloudreve 会使用内置的 SQLite 数据库,并在同级目录创建数据库文件`cloudreve.db`,如果您想要使用 MySQL,请在配置文件中加入以下内容,并重启 Cloudreve。注意,Cloudreve 只支持大于或等于 5.7 版本的 MySQL 。 ```ini [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 ``` [scode type="blue"]更换数据库配置后,Cloudreve 会重新初始化数据库,原有的数据将会丢失。[/scode] ### 使用 Redis 你可以在配置文件中加入 Redis 相关设置: ```ini [Redis] Server = 127.0.0.1:6379 Password = your password DB = 0 ``` [scode type="blue"]请为 Cloudreve 指定未被其他业务使用的 DB,以避免冲突。[/scode] 重启 Cloudreve 后,可注意控制台输出,确定 Cloudreve 是否成功连接 Redis 服务器。使用 Redis 后,以下内容将被 Redis 接管: * 用户会话(重启 Cloudreve 后不会再丢失登录会话) * 数据表高频记录查询缓存(如存储策略、设置项) * 回调会话 * OneDrive 凭证 ### 启用 HTTPS [scode type="blue"]如果您正在使用 Web 服务器反向代理 Cloudreve,推荐您在 Web 服务器中配置 SSL,本小节所阐述的启用方式只针对使用 Cloudreve 内置 Web 服务器的情境下有效。[/scode] 在配置文件中加入: ```ini [SSL] Listen = :443 CertPath = C:\Users\i\Documents\fullchain.pem KeyPath = C:\Users\i\Documents\privkey.pem ``` 其中 `CertPath` 和`KeyPath` 分别为 SSL 证书和私钥路径。保存后重启 Cloudreve 生效。 ### 覆盖从机节点的配置项 Cloudreve 的某些配置项是存储在数据库中的,但是从机节点并不会连接数据库,你可以在配置文件中覆盖相应的配置项。 比如,从机节点作为存储端运行时,你可以通过下面的配置设定从机生成的缩略图规格: ```ini [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 ``` 如果从机节点作为离线下载节点使用,你可以通过下面的配置覆盖默认的重试、超时参数,以避免默认的数值过于保守导致文件转存失败: ```ini [OptionOverwrite] ; 任务队列最多并行执行的任务数 max_worker_num = 50 ; 任务队列中转任务传输时,最大并行协程数 max_parallel_transfer = 10 ; 中转分片上传失败后重试的最大次数 chunk_retries = 10 ``` # 离线下载 Cloudreve 的离线下载核心由 [Aria2](https://aria2.github.io) 驱动。正确配置并启用离线下载功能后,用户可以创建磁力链、HTTP、种子下载任务,由服务端下载完成后加入到用户文件中。 对于云存储策略,离线下载任务完成后,Cloudreve 会将所下载的文件转存到云存储端,在转存结束前,用户无法下载、管理已下载的文件。用户可以在前台任务队列中查看转存任务进度。 Cloudreve 支持“从机离线下载”,您可以将离线下载任务分流至多台服务器处理,避免这些任务过多占用主机的资源。每个负责处理离线下载任务的节点需要运行一组 Cloudreve 和 Aria2 实例。您可以按照管理面板中的节点添加向导指引配置并添加新节点。从机离线下载节点与用于从机存储策略的 节点本质上是一样的,您可以将从机 Cloudreve 实例同时用作存储节点和离线下载节点。如果您不需要从机节点处理离线下载任务,只想让当前主机 Cloudreve 处理离线下载,只需要编辑主机节点并配置 Aria2 相关信息即可。用户创建的离线下载任务会被轮流分配到所有可用的离线下载节点处理。 ## 启用离线下载 ### Aria2 RPC 配置 Aria2 的安装、启动过程不在本文讨论范围之内。您需要在 Cloudreve 相同的机器上启动 Aria2。 [scode type="blue"]推荐在日常启动流程中,先启动 Aria2,再启动 Cloudreve,这样 Cloudreve 可以向 Aria2 订阅事件通知,下载状态变更处理更及时。当然,如果没有这一流程,Cloudreve 也会通过轮询追踪任务状态。[/scode] 在启动 Aria2 时,需要在其配置文件中启用 RPC 服务,并设定 RPC Secret,以便后续使用。 ```bash # 启用 RPC 服务 enable-rpc=true # RPC监听端口 rpc-listen-port=6800 # RPC 授权令牌,可自行设定 rpc-secret= ``` ### 接入 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 的配置文件中指定这些参数。具体的可用参数可参考[官方文档](https://aria2.github.io/manual/en/html/aria2c.html#options),以 JSON 的格式填写在这里。如果格式有误,可能会导致无法创建任务。以下为一个填写示例,指定了最大并行任务数和 Tracker 服务器列表: ```javascript { "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: ```bash bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce ``` 以上指定的 Tracker 列表只是示例,你需要根据实际自己填写。你可以使用 [trackerslist](https://github.com/ngosang/trackerslist) 项目中每日更新的最佳 Tracker 列表。 #### BT 任务进度100%后,任务仍长期处在”进行中“的列表中不被处理 默认情况下 Aria2 会对下载完成的 BT 任务进行做种,做种完成后才会被 Cloudreve 认定为已完成,并进行后续处理。您可以在 Aria2 配置文件中指定做种分享率或做种时间,当达到任一条件后,做种会停止: ```bash # 做种分享率, 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([官方文档](https://sdk.collaboraonline.com/docs/installation/CODE\_Docker\_image.html#code-docker-image)): ```sh 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 ``` 以官方演示站为例: ```sh 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 ``` 开启SSL: ```sh docker run -t -d -p 127.0.0.1:9980:9980 \ -v /path/to/cert.pem:/etc/coolwsd/cert.pem:ro \ # 挂载证书路径,只允许读 -v /path/to/key.pem:/etc/coolwsd/key.pem:ro \ # 挂载私钥路径,只允许读 -e "domain=your-nextcloud-domain.com" \ # 证书的域名 -e "ALWAYS_LOAD_CERTIFICATE=true" \ # 强制加载证书 --cap-add MKNOD \ -e "aliasgroup1=https://demo.cloudreve.org:443" \ -e "username=<面板管理员用户名>" \ -e "password=<面板管理员密码>" \ --name code --restart always collabora/code ``` Container 启动后,配置 Nginx 或其他 Web 服务器反向代理 `https://127.0.0.1:9980`, 可参考 [Proxy settings](https://sdk.collaboraonline.com/docs/installation/Proxy\_settings.html),确保反代后的服务能够被你的最终用户访问,你可以手动访问 `<你的服务主机>/hosting/discovery` 来确认是否返回了预期的 XML 响应。 在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 `使用 WOPI` 并在 `WOPI Discovery Endpoint` 中填入`<你的服务主机>/hosting/discovery`。保存后可在前台测试文档预览和编辑: ![2023-06-23T07:44:37.png][1] ## OnlyOffice OnlyOffice 在 6.4 版本后支持了 WOPI 协议,请参考 官方文档 部署你的 [OnlyOffice](https://helpcenter.onlyoffice.com/) 实例。推荐使用 [Docker-DocumentServer](https://github.com/ONLYOFFICE/Docker-DocumentServer) 来快速部署。 参考 [官方文档](https://helpcenter.onlyoffice.com/installation/docs-developer-configuring.aspx#WOPI) 配置 OnlyOffice 开启 WOPI 功能。如果使用 Docker,可在创建 Contianer 时指定 `WOPI_ENABLED` 为 `true` 来开启: ```sh 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][2] [scode type="blue"]OnlyOffice 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 `wopisrc` 参数是否为预期的 Cloudreve 站点。[/scode] ## Office Online Server (On-Prem) [Office Online Server](https://learn.microsoft.com/en-us/officeonlineserver/office-online-server) 是微软推出的可私有部署的 Office 在线文档服务。请参考 [官方文档](https://learn.microsoft.com/en-us/officeonlineserver/deploy-office-online-server) 在你的 Windows Server 上部署。 你可以手动访问 `<你的 OnlyOffice 主机>/hosting/discovery` 来确认是否返回了预期的 XML 响应。 在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 `使用 WOPI` 并在 `WOPI Discovery Endpoint` 中填入`<你的服务主机>/hosting/discovery`。保存后可在前台测试文档预览和编辑: ![2023-06-23T07:45:34.png][3] [scode type="blue"]Office Online Server 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 `wopisrc` 参数是否为预期的 Cloudreve 站点。[/scode] ## WOPI 协议 Web Application Open Platform Interface (WOPI) 协议是一种用于集成 Web 文档编辑器的协议,你可以在 [微软的文档](https://learn.microsoft.com/en-us/microsoft-365/cloud-storage-partner-program/online/) 中阅读详细的协议定义。Cloudreve 可以对接实现了 WOPI 协议的文档处理服务,用于扩展已有的文档预览和编辑能力。 ### 兼容性 Cloudreve 对 WOPI REST 方法的实现情况如下表所示: Method支持情况CheckFileInfo✅GetFile✅Lock⚠️(可调用但无效果)RefreshLock⚠️(可调用但无效果)Unlock⚠️(可调用但无效果)PutFile✅PutRelativeFile❌RenameFile✅ # 数据库脚本 Cloudreve 内置了一些常用数据库脚本,可用于日常维护、版本升级等操作。您可以在启动时添加命令行参数 `--database-script 发表评论 取消回复 使用cookie技术保留您的个人信息以便您下次快速评论,继续评论表示您已同意该条款 评论 * 私密评论 名称 * 🎲 邮箱 * 地址 发表评论 提交中...