当前位置: 首页 > news >正文

本地搭建OnlyOffice在线文档编辑器结合内网穿透实现远程协作

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 本地安装部署ONLYOFFICE
    • 3. 安装cpolar内网穿透
    • 4. 固定OnlyOffice公网地址

前言

本篇文章讲解如何使用Docker在本地Linux服务器上安装ONLYOFFICE,并结合cpolar内网穿透实现公网访问本地部署的文档编辑器与远程协作。

Community Edition允许您在本地服务器上安装ONLYOFFICE文档,并将在线编辑器与ONLYOFFICE协作平台或其他流行系统集成。它是一个在线办公套件,包括文本、电子表格和演示文稿的查看器和编辑器,完全兼容office Open XML格式:.docx、.xlsx、.pptx,并支持实时协作编辑。

1. 安装Docker

本文演示环境:CentOS7,Xshell7远程ssh

没有安装Docker的小伙伴需安装Docker,已有Docker可跳过以下步骤。

如没有安装Docker,需先安装Docker:

安装软件包(提供实用程序)并设置存储库

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动Docker

sudo systemctl start docker

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world

2. 本地安装部署ONLYOFFICE

检查Docker服务是否正常运行

systemctl status docker

启动Docker

systemctl start docker

查看Docker版本

docker -v

在docker hub下载OnlyOffice镜像

sudo docker pull onlyoffice/documentserver:7.3

将本机的9000端口映射到docker的80端口上,访问时通过服务器ip:9000访问

并且用 -v 将本机机==/home/onlyOffice==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹。JWT_SECRET填写自己定义的密钥,JWT_ENABLED设置为true开启token验证。

PS:如因网络问题拉取不到镜像,

可尝试在终端执行 sudo nano /etc/docker/daemon.json

输入:

{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}

保存退出

然后执行:

sudo systemctl restart docker

指定密钥和开启token

docker run -i -t -d -p 9000:80 -v /home/myOnlyOffice:/var/www/onlyoffice/documentserver/web-apps/wsData --env JWT_SECRET=VI71S3cGtXg96HgFWzQhblz1KwMc1Jzk -e JWT_ENABLED=true onlyoffice/documentserver:7.3

测试OnlyOffice服务

访问网址:192.168.11.129:9000,需要以IP加端口方式访问,不能用localhost访问。

de1cb50f91bd38c63db604bf46fffa2

我们就成功在本地搭建了OnlyOffice,但如果想实现出门在外,或者企业之间想在公网同步访问进行工作协作,省去本地部署的步骤,就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现OnlyOffice的公网访问!

3. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下OnlyOfficeF的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个OnlyOffice的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:9000(本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

3539e483587ef2f683956fdcfd12fb7

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

117b84e11cd99e51f68937162e8ba61

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到OnlyOffice界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问了!

ffc32ee5e9af3141edd931f503c3cf6

小结

如果我们需要长期异地远程访问OnlyOffice,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问OnlyOffice,我们可以选择创建一个固定的http地址来解决这个问题。

4. 固定OnlyOffice公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

714642c66bf8535b0d59d25f500fb3c

保留成功后复制保留成功的二级子域名的名称

d5f61ee1cedbb6f030fb2af8fb55fdc

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

bd58fbfc22c07d65099a1c1939e23c3

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

b339cade367481fc61281867ea81798

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

d8509f21e56c4114f878c9c22dd9ab7

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地进行异地访问OnlyOffice!

21cb2a8e25afb2e98eb453850ea3ebc

相关文章:

  • 在线订餐革命:Spring Boot 点餐系统
  • 静电势能(electrostatic potential energy)和电势(electric potential)
  • 戴尔笔记本电脑——重装系统
  • 进阶SpringBoot之 Dubbo 及 Zookeeper 安装
  • vant van-pull-refresh + van-list实现list列表支持搜索和下拉刷新
  • centos7如何连接网络 centos7wifi连接
  • 决策树算法在机器学习中的应用
  • WebGL复杂几何体与模型加载
  • Entity Framework扩展高级查询功能
  • 炉石传说辅助攻略—VMOS云手机助攻:国服回归任务要点,哪个辅助更好?
  • Elasticsearch 中 Painless 脚本详解
  • Python3爬虫教程-HTTP基本原理
  • 【MySQL】基础入门篇
  • [WMCTF2020]Make PHP Great Again 2.01
  • s3c2440——ADC模数转换器,Linux驱动编程——u-boot
  • 【前端学习】-粗谈选择器
  • 07.Android之多媒体问题
  • create-react-app做的留言板
  • httpie使用详解
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript 奇技淫巧
  • JAVA多线程机制解析-volatilesynchronized
  • Java小白进阶笔记(3)-初级面向对象
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • miaov-React 最佳入门
  • tensorflow学习笔记3——MNIST应用篇
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 大数据与云计算学习:数据分析(二)
  • 后端_ThinkPHP5
  • 简单实现一个textarea自适应高度
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何编写一个可升级的智能合约
  • 数组的操作
  • 一些关于Rust在2019年的思考
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (JS基础)String 类型
  • (poj1.2.1)1970(筛选法模拟)
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (利用IDEA+Maven)定制属于自己的jar包
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (南京观海微电子)——I3C协议介绍
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一)Java算法:二分查找
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)C#调用WebService 基础
  • *p++,*(p++),*++p,(*p)++区别?
  • ... 是什么 ?... 有什么用处?