Tzchz's Blog

Tzchz's Blog
Enjoy coding life
  1. 首页
  2. Container
  3. 正文

利用Azure Web App或Okteto搭建OnlyOffice文档服务器,完全免费

2021年7月19日 1266点热度 0人点赞 2条评论

OnlyOffice DocumentServer 是一个可以和各种Web网站通过API集成到一起的后端服务器程序,和市面上其他的程序相比最大的优点是可以免费使用。但是DocumentServer(下称DS)也有一个众所周知的缺点,就是非常占服务器资源。

上面说过,DS是通过API集成到前端网页的,因此DS本身并不需要持久存储。而DS现在又有Docker版本,所以可以很方便地部署到Azure Web App或Okteto上。这两个平台的限制就是容器自动休眠,且默认不持久存储,DS正好完美地规避。

部署的Docker只是后端的API服务器,那么还需要前端网页和它集成。下文提供了一个静态HTML页面,可以很简单地连接到DS的API,不过你也可以和NextCloud等第三方程序集成。

下面四段是废话:

  • 我之前看见有人说,用Oracle的免费高配ARM服务器搭建了NextCloud,但是限于ARM的架构限制DS跑不了。用Azure Web App或者Okteto部署DS和NextCloud连接,这羊毛岂不薅得美滋滋?
  • 通过这篇文章中OnlyOffice段的方法,也可以给NextCloud甚至Cloudreve配置在线编辑。
  • Azure Web App和Okteto的免费版的网址没法自定义,但是后端服务器通过API与前端连接,访客看不到后端的地址,高端大气上档次,避免尴尬。
  • 下面的那个Demo地址,首页是抓的微软的?

一、部署后端DocumentServer服务器

上面说了,DS本身并不需要持久存储,所以这下连挂载目录都不用了:

Okteto配置

services:
    onlyoffice:
        image: onlyoffice/documentserver
        ports:
            - 80:80

Azure Web App配置

Azure更简单,直接选择“单个容器”部署“onlyoffice/documentserver”这个镜像就可以了。

提醒:DS服务器在容器启动后要等待一段时间才能启动,不要部署完了发现打不开着急。

二、 一个简单的前端静态HTML页面

先给两个Demo地址:

onlyoffice.web.app onlyoffice.vercel.app

很显然,得益于后端DS服务器的支持,前端页面是几乎不占服务器资源的,因此像Vercel这样的静态网页托管都可以部署。

一个简单的HTML如下(需要部署到Web上才有效,存到本地打不开):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Word Online</title>
        <script type="text/javascript" src="https://%你的DS服务器地址%/web-apps/apps/api/documents/api.js"></script>
        <style>
            body {margin: 0;}
            iframe {height: 100vh;}
        </style>
    </head>
    <body>
        <div id="placeholder"></div>
        <script language="javascript" type="text/javascript">
            var docEditor = new DocsAPI.DocEditor("placeholder",{
                "document": {
                    "fileType": "docx",
                    "title": "Word.docx",
                    "url": prompt("请输入文档URL,默认新建空白文档","https://onlyoffice.web.app/NewDocument/Word.docx")
                },
                "documentType": "text"
            });
        </script>
    </body>
</html>

注:这个配置默认情况下,文档不会保存到服务器,需要在关闭窗口前下载到本地。如果要在服务器上保留数据,首先DS服务器要持久存储,然后需要在"document"中添加一个"secret"参数,下一次打开时使用相同的"secret",就可以打开存储在服务器中的文档了。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: azure azure免费 DocumentServer okteto OnlyOffice 免费
最后更新:2021年7月19日

tzchz

个人主页:https://886783.xyz

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 怎样le

    我去,好像15天没有push会被取消。。

    2021年8月8日
    回复
    • tzchz

      @怎样le 15天有访问就可以,每天第一次访问会提醒正在唤醒

      2021年8月9日
      回复
  • 取消回复

    tzchz

    个人主页:https://886783.xyz

    关于我
    • Tzchz Home(关于我)
    • Tzchz’s NoteBook
    • Tzchz’s Cloud
    • MultSearch
    友链
    • 道之远兮
    • ITJoker
    • YF's Blog
    • 一颗柚子

    COPYRIGHT © 2022 Tzchz's Blog. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang