创建目录结构

确保运行之前:

1、手动创建 conf.ini 空文件或者符合 Cloudreve 配置文件规范的 conf.ini, 并将 /usr/local/cloudreve/conf.ini 替换为该路径

2 、手动创建 cloudreve.db 空文件, 并将 /usr/local/cloudreve/cloudreve.db 替换为该路径

3 、手动创建 uploads 文件夹, 并将 /usr/local/cloudreve/uploads 替换为该路径

4、 手动创建 avatar 文件夹,并将 /usr/local/cloudreve/avatar 替换为该路径

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

      cd /usr/local
&& 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=/usr/local/cloudreve/conf.ini,target=/cloudreve/conf.ini \
--mount type=bind,source=/usr/local/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db \
-v /usr/local/cloudreve/uploads:/cloudreve/uploads \
-v /usr/local/cloudreve/avatar:/cloudreve/avatar \
cloudreve/cloudreve:latest
    

添加域名

这个根据自己的实际情况,我这里给 Nginx 添加配置文件,配置域名:

       server {
        listen       443 ssl;
        server_name  pan.xiaoying.org.cn;

        ssl_certificate /etc/nginx/pan.xiaoying.org.cn_bundle.crt;
        ssl_certificate_key /etc/nginx/pan.xiaoying.org.cn.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        location ~* \.(jpg|jpeg|png|gif|bmp|swf)$ {
           etag on;
           add_header Cache-Control "public, max-age=2592000";
       }

       location ~ /\.{
         deny all;
       }

       location / {
         proxy_set_header Host $host;
         proxy_set_header   X-Forwarded-Proto $scheme;
         proxy_set_header   X-Real-IP         $remote_addr;
         proxy_pass http://127.0.0.1:5212;
    }
  }
    

更新

/usr/local/cloudreve添加cloudreve-update.sh,内容如下

      SOURCE_PATH=/usr/local/cloudreve
SERVER_NAME=cloudreve/cloudreve
TAG=latest
SERVER_PORT=5212

RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone

CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME,CID-$CID"
  docker stop $CID
  echo "成功停止容器$SERVER_NAME,CID-$CID"
  docker rm $CID
  echo "成功删除容器$SERVER_NAME,CID-$CID"
fi
if [ -n "$IID" ]; then
  echo "存在镜像$SERVER_NAME:$TAG,IID=$IID"
  docker rmi $IID
  echo "成功删除镜像$SERVER_NAME:$TAG,IID=$IID"
fi
echo "开始拉取最新镜像$SERVER_NAME:$TAG"
docker pull cloudreve/cloudreve
echo "成功拉取最新镜像$SERVER_NAME:$TAG"

docker run -d \
-p 5212:5212 \
--mount type=bind,source=/usr/local/cloudreve/conf.ini,target=/cloudreve/conf.ini \
--mount type=bind,source=/usr/local/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db \
-v /usr/local/cloudreve/uploads:/cloudreve/uploads \
-v /usr/local/cloudreve/avatar:/cloudreve/avatar \
cloudreve/cloudreve:latest

echo "成功创建并运行容器$SERVER_NAME"
    

执行如下命令打包docker镜像文件启动容器

      chmod +x cloudreve-update.sh && sh cloudreve-update.sh
    

扩展文档预览/编辑

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

OnlyOffice

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

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

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

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

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

声明

作者: liyao

版权:本博客所有文章除特别声明外,均采用CCBY-NC-SA4.O许可协议。转载请注明!

最后更新于 2026-02-17 19:27 history