knowledge1
etherpad共享文档教程
首先声明:本文档不会一步一步指导操作,主要介绍思路,以及当前(2024.9.4)遇到的问题的解决方案,详细命令可以请教AI
什么是etherpad
上面直接粘贴的官网的介绍,简言之就是一个共享文档的开源项目。
从git开始
主流的安装方式应该是git和docker两种,但是docker的etherpad的库好像有问题,而且国内目前docker的墙太厚了,镜像站也不好找,所以docker虽然方便但是没法直接用,因此我这里选择git源码编译运行。
首先在一个合适的目录新建一个etherpad的工作目录
cd 到工作目录,再git clone源码
git clone https://github.com/ether/etherpad-lite.git |
这里阿里云的服务器不对github设墙,所以我可以直接git源码,如果你的服务器无法访问github,那么可以选择本地先git或者下载zip源码包,然后ssh上传到服务器上解压缩。
然后就是搭建node.js的环境,这也是etherpad的本地运行环境。
可怕的node环境
由于我原本装的服务器操作系统是centos7.6(官方已经暂停维护),对于node18及以上的版本都不支持(etherpad需要pnpm构建工具,npm低版本不支持pnpm),然后我换了好几个操作系统(centos stream、docker(阿里云的奇怪设置,docker是软件系统,但是操作系统没明说我怀疑还是centos系列),debian)都失败了。最后我先选择了ubuntu22.04(阿里云配置),然后将其升级到了ubuntu24版本。不得不说,阿里云的轻量应用服务器这一点是真的坑,不仅支持的系统少而且老旧,还不允许使用其它镜像(但是ecs云服务器可以使用其它镜像)。这里的升级系统的操作就不讲了,不是很复杂,请自行咨询AI。
好在ubuntu24没有让我失望,成功安装了nvm(非最新版本),然后我又升级到nvm(0.4版本),再设置nvm、npm镜像源,然后下载了node18.20.4(node20不知道为什么无法下载,我怀疑是腾讯的镜像源没有引入。)
现在几乎配好了全部node环境(后面还涉及到一部分的ts环境)
这里有个坑,虽然设置了nvm和npm镜像源,但是还是有可能(记不太清了)无法下载node(不知道为什么),所以这里可以给vps挂上代理,这里安利一个教程(v2rayA - 文档)
容器启动
进入工作目录,由于最新版的etherpad使用了TypeScript作为代码基础,所以还得将TypeScript代码编译成JavaScript代码,再进行运行。
安装tsc(typescript编译器):npm install -g typescript
初始化(创建tsconfig.json):tsc --init
编译:tsc
启动:node dist/node/server.js
现在你可以在IP:9001默认端口查看到你的etherpad服务了,不过进程会随着终端的关闭而关闭,因此我们需要将其改成守护进程(daemon)。
这里我选择使用PM2来管理进程
先关闭etherpad(ctrl + c)
全局安装:npm install -g pm2
启动:pm2 start src/node/server.js --name etherpad
生成开机自启脚本(可选):pm2 startup
保存当前进程列表:pm2 save
这里已经成功实现etherpad的守护进程的运行了,更多pm2命令请自行查阅
接下来我们用nginx来绑定域名并转发端口
nginx转发端口
下载nginx(包管理工具会默认下载到/etc文件夹中),你也可以选择源码编译安装,这里省事就直接apt下载安装了。
编辑nginx配置文件(这也是nginx的核心工作指导文件):sudo nano /etc/nginx/sites-available/etherpad
复制粘贴以下内容,注意替换其中的域名:
server { |
重启新的nginx配置:sudo ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
检测nginx配置文件格式:sudo nginx -t
重新加载nginx:sudo systemctl reload nginx
congratulations!
现在请直接通过域名访问你的etherpad网页吧!congratulations!