Docker 部署 Openlist 以及 Onlyoffice 在线预览

105次阅读
没有评论

共计 2451 个字符,预计需要花费 7 分钟才能阅读完成。

搭建

由于 Alist 被收购,并且收购公司涉嫌收集用户隐私数据,所以 Alist 使用者成立 Openlistteam,从 Alist 分支出 Openlist 项目。

目前 Openlist 已接近稳定,所以可以搭建使用,并可以配置 Onlyoffice 作为在线预览 Office 文档。

使用如下 compose 文件可以快速进行搭建:

services:
  openlist:
    image: openlistteam/openlist:v4.0.9
    container_name: openlist
    volumes:
      - ./openlist:/opt/openlist/data
    ports:
      - 5244:5244
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
    restart: unless-stopped
  # onlyoffice
  onlyoffice:
    image: superkeyor/onlyoffice
    container_name: onlyoffice
    ports:
        - 5245:80
    restart: always

这里的 superkeyor/onlyoffice 镜像并非官方镜像,因为需要在 onlyoffice 容器内修改文件才能达到实现预览的目的,所以使用的网友提供的镜像。如果有必要,也可以根据官方镜像自行构建。

安装后,通过 docker logs -f openlist 查看 admin 用户密码。

然后在 openlist 后台配置 onlyoffice:

Docker 部署 Openlist 以及 Onlyoffice 在线预览

效果如图:

Docker 部署 Openlist 以及 Onlyoffice 在线预览

其他

这里只是为了记录一下探索 openlist 集成 onlyoffice 的过程,可以略过。以下大部分内容来自 alist 的 github 讨论

首先,如果按照以下方式搭建 onlyoffice,是无法使用的。

services:
  onlyoffice:
    image: onlyoffice/documentserver:8.1
    container_name: onlyoffice
    ports:
        - 8080:80
    restart: always
    volumes:
      - /home/docker/onlyoffice/data:/var/www/onlyoffice/Data
      - /home/docker/onlyoffice/logs:/var/log/onlyoffice
    environment:
      - JWT_SECRET=123456
      #- JWT_ENABLED=false

如果使用 JWT_SECRET 那么就需要令牌进行访问,会导致 openlist 访问不到,所以需要设置 JWT_ENABLED=false

并且需要进入容器修改 /etc/onlyoffice/documentserver/default.json 文件:

  • rejectUnauthorized: false

关闭 ssl,内网不需要。

  • allowPrivateIPAddress、allowMetaIPAddress 设置为 true

允许使用 ip 访问,内网不需要域名。

然后需要在一个 openlist 可以访问到的地方,新建一个 view.html 文件:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>OnlyOffice Viewer</title>
    <style>
      html,
      body {
        margin: 0;
        padding: 0;
        height: 100%;
        overflow: hidden;
      }
      #placeholder {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
      }
    </style>
  </head>

  <body>
    <div id="placeholder"></div>
    <script
      type="text/javascript"
      src="http://x.x.x.x:xxxx/web-apps/apps/api/documents/api.js"
    ></script>
    <script>
      function getQueryParamValue(name) {
        const searchParams = new URLSearchParams(window.location.search);
        return searchParams.get(name);
      }

      const url = decodeURIComponent(getQueryParamValue("src"));
      const fileName = url.substring(
        url.lastIndexOf("/") + 1,
        url.lastIndexOf("?") != -1 ? url.lastIndexOf("?") : url.length
      );
      const fileExtension = fileName.split(".").pop();
      const docEditor = new DocsAPI.DocEditor("placeholder", {
        document: {
          fileType: fileExtension,
          permissions: {
            edit: false,
            comment: true,
            download: true,
            print: true,
            fillForms: true,
          },
          title: fileName,
          url: url,
        },
        editorConfig: {
          lang: "zh",
          mode: "view",
        },
        height: "100%",
        type: "embedded",
      });
    </script>
  </body>
</html>

这里写的是 http://x.x.x.x:xxxx/,当然也可以将该文件放在 onlyoffice 容器内的 /var/www/onlyoffice/documentserver/web-apps/apps/api/documents/ 目录下,则可以去掉前面这部分内容。

另外,如果需要启用编辑模式,还需要配置回调,即将修改后的文件保存到 openlist。这个比较复杂,暂时先不折腾了,如果以后折腾了再完善这一部分,或者直接修改搭建的容器,以便直接启用。

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2025-07-30发表,共计2451字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2023-2025 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock