网站首页 > 技术文章 正文
Etherpad在线文档协作编辑工具
一、前言
Etherpad是一种开源的实时协作编辑器,允许多个用户同时编辑同一文档,并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发,后来被Google收购,现在由Apache软件基金会维护。Etherpad可以用于协作编辑文档、记录会议纪要、编写代码等多种场景。现已开源
- 「项目地址:github地址:https://github.com/ether/etherpad-lite」
- 「登录页」
- 「共享编辑」
- 「可以记录整个协同写作的过程」
- 在线聊天
二、安装部署
- 环境信息
名称版本备注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
三、常用插件安装
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
猜你喜欢
- 2024-12-30 go-admin开源项目,快速搭建一个管理后台系统,直接二次开发上线
- 2024-12-30 Ollama教程:本地LLM管理、WebUI对话、Python/Java客户端API应用
- 2024-12-30 Go 项目推荐之 go-admin go的项目
- 2024-12-30 nodejs多版本管理工具 nodejs 版本
- 2024-12-30 npm提示 sill idealTree buildDeps(安装element-ui组件库)
- 2024-12-30 CentOS+Nexus搭建npm私有仓库并推送代码
- 2024-12-30 内网npm私有仓库搭建以及使用教程
- 2024-12-30 TS,TypeScript,Windows环境下构建环境,安装、编译且运行
- 2024-12-30 如何提高npm 下载依赖过慢的问题 npm下载包
- 2024-12-30 使用 Verdaccio 搭建npm私有仓库 搭建自己的npm
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)