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

Etherpad在线文档协作编辑工具

Etherpad在线文档协作编辑工具

一、前言

Etherpad是一种开源的实时协作编辑器,允许多个用户同时编辑同一文档,并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发,后来被Google收购,现在由Apache软件基金会维护。Etherpad可以用于协作编辑文档、记录会议纪要、编写代码等多种场景。现已开源

  • 项目地址: github地址:https://github.com/ether/etherpad-lite

  • 登录页

image-20230608103410911
  • 共享编辑

  • 可以记录整个协同写作的过程

  • 在线聊天

二、安装部署

  • 环境信息
名称版本备注
Centoscentos7.9操作系统
Node.jsv14.18.0Node.js

2.1 安装Node.js 环境

 #下载node-v14.18.0[root@sre ~]# wget https://npm.taobao.org/mirrors/node/v14.18.0/node-v14.18.0-linux-x64.tar.xz#解压并重命名
[root@sre ~]# tar -xf node-v14.18.0-linux-x64.tar.xz -C /usr/local
[root@sre ~]# mv /usr/local/node-v14.18.0-linux-x64 /usr/local/nodejs#设置环境变量
[root@sre ~]# vim /etc/profile
#在最下面追加几行#nodejs
export PATH=/usr/local/nodejs/bin:$PATH#使环境变量生效
[root@sre ~]# source /etc/profile#通过这个命令进行测试
[root@sre ~]# node -v
v14.18.0[root@sre ~]# npm -v
6.14.15#设置淘宝npm加速
[root@sre ~]# npm config set registry https://registry.npm.taobao.org#通过这个命令进行测试
[root@sre ~]# npm config get registry

2.2 安装Etherpad

#下载最新的包
[root@sre ~]# wget https://github.com/ether/etherpad-lite/archive/1.8.18.zip#重命名包并查看包内容
[root@sre ~]# mv etherpad-lite-1.8.18/ etherpad-lite[root@sre ~]# ll etherpad-lite
总用量 156
lrwxrwxrwx 1 root root     7 6月   8 10:43 bin -> src/bin
-rw-r--r-- 1 root root 53690 5月   6 2022 CHANGELOG.md
-rw-r--r-- 1 root root  8922 5月   6 2022 CONTRIBUTING.md
drwxr-xr-x 6 root root   249 5月   6 2022 doc
-rw-r--r-- 1 root root  3412 5月   6 2022 Dockerfile
-rw-r--r-- 1 root root 11353 5月   6 2022 LICENSE
-rw-r--r-- 1 root root   849 5月   6 2022 Makefile
drwxr-xr-x 2 root root    30 5月   6 2022 node_modules
-rw-r--r-- 1 root root 12525 5月   6 2022 README.md
-rw-r--r-- 1 root root   118 5月   6 2022 SECURITY.md
-rw-r--r-- 1 root root 21473 5月   6 2022 settings.json.docker
-rw-r--r-- 1 root root 19295 5月   6 2022 settings.json.template
drwxr-xr-x 8 root root   208 5月   6 2022 src
-rw-r--r-- 1 root root   695 5月   6 2022 start.bat
lrwxrwxrwx 1 root root     9 6月   8 10:43 tests -> src/tests
drwxr-xr-x 2 root root    24 5月   6 2022 var#安装Etherpad依赖初始化
[root@sre ~]# cd etherpad-lite/bin
[root@sre bin]# ./installDeps.sh 

2.3 修改Etherpad配置文件

  • Etherpad 默认的数据库是SQLite,本次我们修改成mysql,并且提前创建好数据库实列
  • trustProxy = ‘true’ ,用于指示Etherpad是否应该信任代理服务器发送的X-Forwarded-*标头。用于使用 nginx 的代理到Etherpad
  • 开启Etherpad 后台管理功能,修改默认的用户名密码

2.3.1 修改数据据库类型

#为Etherpad创建一个数据库和用户,用户名/密码: etherpad/etherpad@2023
MariaDB [(none)]> CREATE DATABASE etherpad;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON etherpad.* TO 'etherpad'@'localhost' IDENTIFIED BY 'etherpad@2023';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q#根据模板文件创建新的配置文件
[root@sre ~]# cd /root/etherpad-lite/[root@sre etherpad-lite]# cp settings.json.template  settings.json[root@sre etherpad-lite]#  vim settings.json#修改配置文件
#注释掉dbType": "dirty 几行
/*"dbType": "dirty","dbSettings": {"filename": "var/dirty.db"},
/*#去掉mysql的注释,配置mysql 用户信息"dbType" : "mysql","dbSettings" : {"user":     "etherpad","host":     "localhost","port":     3306,"password": "etherpad@2023","database": "etherpad","charset":  "utf8mb4"},

image-20230608112949917

2.3.2 配置trustProxy = ‘true’

用于指示Etherpad是否应该信任代理服务器发送的X-Forwarded-*标头。用于使用 nginx 的代理到Etherpad

[root@sre ~]# cd /root/etherpad-lite/
[root@sre etherpad-lite]#  vim settings.json"trustProxy": true,

image-20230608113511279

2.3.3 开启Etherpad 后台管理,修改管理员用户名密码

[root@sre ~]# cd /root/etherpad-lite/
[root@sre etherpad-lite]#  vim settings.json"users": { "admin": {"password": "etherpad@2023","is_admin": true},},

image-20230608135416673

2.4 前台运行Etherpad

官方默认的启动脚本 会运行在控制台前台

[root@sre ~]# cd etherpad-lite/bin
[root@sre bin]# ./run.sh --root

image-20230608105027324

  • 端口监听在 0.0.0.0:9001 上 ,关闭控制台 Etherpad服务就会退出了,不推荐前台运行Etherpad

2.5 后台运行Etherpad

编写一个启动脚本,放在后台运行即可

[root@sre ~ ]# cd /root/etherpad-lite[root@sre etherpad-lite ]# vim start.sh 
nohup /root/etherpad-lite/bin/run.sh --root >> /root/etherpad-lite/output.log 2>&1 &[root@sre etherpad-lite ]# ./stgart.sh

2.6 访问Etherpad

image-20230608105148029

三、常用插件安装

Etherpad提供丰富的插件库,截至文本时间,已经有超过290款插件。

  • 使用管理界面安装插件

​ 使用管理界面 http://ip:port/admin/plugins, 在线安装

插件名称版本备注
font_color0.0.63支持修改字体颜色
font_size0.0.63支持修改字体大小
image_upload1.0.101支持上传图片
markdown0.1.50支持编辑并导出markdown格式
sticky_attributes0.1.13支持添加对属性的支持,以粘贴在插入符号位置IE按下加粗按钮,创建粗体文本。适用于下划线、斜体、粗体
tables41.0.5支持将表格插入到文档中
todo_list0.1.2支持将待办事项列表插入到文档中
ether-o-meter0.0.11显示指标,比如CPU 磁盘 内存 等等
desktop_notifications0.1.34接收聊天桌面通知

3.1 使用管理界面在线安装插件

  • 登录插件管理的后台,输入管理员用户名密码

image-20230608140425995

  • 找到自己需要的插件直接 Install 即可

image-20230608141327997

四、其他功能配置

4.1 自定义界面风格

通过访问http://172.16.10.37:9001/p/test#skinvariantsbuilder,即设置编辑器的风格。

Etherpad 支持设置顶部菜单、背景区、编辑区的背景,提供了四种不同的样式用于选择,想用哪种随你选。

4.2 使用Nginx 代理

**Nginx 安装过程省略,这里只贴出代理的nginx配置文件,注意Etherpad 的配置文件中的要设置成 trustProxy = ‘true’ **

[root@sre offline]# cat etherpad.conf 
server {listen       80;listen 443 ssl;server_name  etherpad.xxx.link;root         /usr/share/nginx/html;ssl_certificate /etc/opt/rh/rh-nginx116/nginx/cert/xxx/xxx.crt;ssl_certificate_key /etc/opt/rh/rh-nginx116/nginx/cert/xxx.link/xxx.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {proxy_pass http://172.16.10.37:9001;client_max_body_size 200m;proxy_set_header            Host $host;proxy_set_header            X-real-ip $remote_addr;proxy_set_header            X-Forwarded-For $remote_addr;}error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

五、参考

  • https://developer.aliyun.com/article/993554?accounttraceid=de974e40289e418c99e0c57ae3d80d11irqk
  • https://cloud.tencent.com/developer/article/2188250

本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【IOS兼容】IOS/IE new Date() 返回结果为invalid date
  • 微信支付商家转账到零钱:快速开通攻略及功能全解
  • 探索前沿科技:在本地系统上安装和使用Style TTS2进行高质量语音合成
  • word宏的概念
  • 《Python 面试热门问题五》
  • C++:类型转换
  • Linux之多线程概念
  • 深度学习5从0到1理解RNN(包括LTSM,GRU等):内容丰富(下)
  • Ubuntu22.04版本左右,开机自动启动脚本
  • 7个流行的开源数据治理工具
  • 「图::存储」链式邻接表|链式前向星(C++)
  • Python世界:输入输出之回文串判别实践
  • 如何使用python抓包,附代码
  • java中prepareStatement怎么用
  • SpringBoot2:学SpringBoot前的知识准备-用IDEA创建传统的webapp工程,并整合SpringMVC
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • centos安装java运行环境jdk+tomcat
  • Computed property XXX was assigned to but it has no setter
  • gf框架之分页模块(五) - 自定义分页
  • Sass 快速入门教程
  • SpingCloudBus整合RabbitMQ
  • 创建一个Struts2项目maven 方式
  • 基于axios的vue插件,让http请求更简单
  • 计算机在识别图像时“看到”了什么?
  • 嵌入式文件系统
  • 如何设计一个微型分布式架构?
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 学习HTTP相关知识笔记
  • Java性能优化之JVM GC(垃圾回收机制)
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ​数据结构之初始二叉树(3)
  • #{}和${}的区别是什么 -- java面试
  • #define
  • #define,static,const,三种常量的区别
  • #图像处理
  • $.ajax()
  • (12)Linux 常见的三种进程状态
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (7)摄像机和云台
  • (Java数据结构)ArrayList
  • (MATLAB)第五章-矩阵运算
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (搬运以学习)flask 上下文的实现
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (十五)使用Nexus创建Maven私服
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)ABI是什么
  • (转)重识new
  • **CI中自动类加载的用法总结
  • ... 是什么 ?... 有什么用处?
  • .NET Framework杂记