Etherpad在线文档协作编辑工具
一、前言
Etherpad是一种开源的实时协作编辑器,允许多个用户同时编辑同一文档,并实时显示每个用户的输入内容。Etherpad最初由Etherpad基金会开发,后来被Google收购,现在由Apache软件基金会维护。Etherpad可以用于协作编辑文档、记录会议纪要、编写代码等多种场景。现已开源
-
项目地址: github地址:https://github.com/ether/etherpad-lite
-
登录页
- 共享编辑
-
可以记录整个协同写作的过程
-
在线聊天
二、安装部署
- 环境信息
名称 | 版本 | 备注 |
---|---|---|
Centos | centos7.9 | 操作系统 |
Node.js | v14.18.0 | Node.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"
},
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,
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
},
},
2.4 前台运行Etherpad
官方默认的启动脚本 会运行在控制台前台
[root@sre ~]# cd etherpad-lite/bin
[root@sre bin]# ./run.sh --root
- 端口监听在 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_color | 0.0.63 | 支持修改字体颜色 |
font_size | 0.0.63 | 支持修改字体大小 |
image_upload | 1.0.101 | 支持上传图片 |
markdown | 0.1.50 | 支持编辑并导出markdown格式 |
sticky_attributes | 0.1.13 | 支持添加对属性的支持,以粘贴在插入符号位置IE按下加粗按钮,创建粗体文本。适用于下划线、斜体、粗体 |
tables4 | 1.0.5 | 支持将表格插入到文档中 |
todo_list | 0.1.2 | 支持将待办事项列表插入到文档中 |
ether-o-meter | 0.0.11 | 显示指标,比如CPU 磁盘 内存 等等 |
desktop_notifications | 0.1.34 | 接收聊天桌面通知 |
3.1 使用管理界面在线安装插件
- 登录插件管理的后台,输入管理员用户名密码
- 找到自己需要的插件直接 Install 即可
四、其他功能配置
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 协议,完整转载请注明来自 运维小弟