帮助中心
如何在Ubuntu 24.04服务器上安装Etherpad协作编辑器

如何在Ubuntu 24.04服务器上安装Etherpad协作编辑器


Etherpad 是一款开源的协作式实时文本编辑器,可随时随地访问,因为 Etherpad 是一款基于网络的文本编辑器。Etherpad 支持版本管理和团队内置格式,并通过各种插件提供高度可定制的编辑器。它还支持 doc、pdf、odt、markdown 等现代文档格式。


在本指南中,我们将指导你在 Ubuntu 24.04 服务器上安装 Etherpad 协作编辑器。你将用 MariaDB 数据库服务器设置 Etherpad,用 Nginx 作为反向代理,然后通过 Certbot 和 Letsencrypt 确保 Etherpad 的 HTTPS 安全。


前提条件


要开始学习本指南,请确保你具备以下条件:


  • Ubuntu 24.04 服务器。
  • 具有管理员权限的非 root 用户。
  • 指向服务器 IP 地址的域名。


安装依赖项


Etherpad 是用 Node.js 编写的协作式实时编辑器。要安装它,必须安装 Node.js、NPM 和 Git 等依赖包。Etherpad 还需要 Python3 和 MySQL/MariaDB 作为数据库。


首先,按以下步骤更新你的 Ubuntu 软件源:

sudo apt update


现在,使用下面的命令为 Etherpad 安装依赖项。通过该命令,你将安装 MariaDB 服务器、Nginx、Node.js、Python3、Git 和一些基本工具。

sudo apt install mariadb-server nginx nodejs npm gzip git curl python3 libssl-dev

输入 Y 确认安装。



安装完成后,检查 MariaDB 和 Nginx 服务,确保两个服务都在运行。


用以下命令检查MariaDB服务

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

如下所示,MariaDB 服务正在运行,并将在启动时自动启动。



现在使用下面的命令检查 Nginx 服务。当 Nginx 服务运行并启用时,应该会得到类似的输出结果。

sudo systemctl is-enabled nginx
sudo systemctl status nginx


最后,使用以下命令检查 Node.js 版本

node -v

确保你使用的是 Node.js v18.x 或更高版本。Etherpad 支持 Node.js v18 及以上版本。



设置 MariaDB 服务器


安装完依赖项后,你将配置 MariaDB 服务器,并为 Etherpad 创建一个新数据库和用户。你将使用 "mariadb-secure-installation "工具保护 MariaDB,然后通过 MariaDB 客户端设置数据库和用户。


要保护你的 MariaDB 服务器,请执行以下命令:

sudo mariadb-secure-installation

系统会提示你进行MariaDB服务器配置:


  • 默认的 MariaDB 安装没有密码,在提示输入密码时按 ENTER 键。
  • 现在输入 Y 设置 MariaDB 根密码。然后,输入 MariaDB 的新密码并重复密码。
  • 输入 Y 从 MariaDB 安装中删除匿名用户。
  • 出现提示时再次输入 Y,禁用 MariaDB 根用户的远程登录。
  • 输入 Y 从 MariaDB 中移除默认数据库测试。
  • 最后,输入 Y 以重新加载表权限并应用新的更改。


保护并配置好 MariaDB 服务器后,你将为 Etherpad 创建一个新数据库和用户。


使用以下命令登录 MariaDB 服务器。根据提示输入 MariaDB root 密码。

sudo mariadb -u root -p

接下来,运行以下 MariaDB 查询,创建新数据库 "etherpad_db"、用户 "etherpad "和密码 "StrongPasswordEtherpadDB"。您可以根据自己的信息调整以下数据库详细信息。

CREATE DATABASE etherpad_db;
CREATE USER etherpad@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_db.* to etherpad@localhost;
FLUSH PRIVILEGES;


现在运行以下查询,确保用户 "etherpad "可以访问数据库 "etherpad_db"。

SHOW GRANTS FOR etherpad@localhost;

你可以看到用户 "etherpad "拥有访问数据库 "etherpad_db "的多重权限。

最后,键入 quit 退出 MariaDB 服务器。



安装 Etherpad Lite


创建数据库和用户后,下载 Etherpad 源代码,使用安装脚本安装 Etherpad 依赖项,然后配置 Etherpad 与 MariaDB 服务器的安装。


默认情况下,Etherpad 使用 pnpm 软件包管理器来管理安装,因此你必须先在系统中全局安装 "pnpm"。


首先,使用以下 npm 命令全局安装 pnpm 软件包 (-g)。默认情况下,Etherpad 项目使用 pnpm 作为 Node.js 包管理器,而不是标准的 npm。

npm install pnpm -g

现在运行下面的命令创建一个新的系统用户 "etherpad"。该用户将用于运行 Etherpad 应用程序。

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

接下来,进入 /opt,用 git 下载 Etherpad 源代码到 "etherpad-lite "目录。然后,将"/opt/etherpad-lite "目录的所有权更改为用户 "etherpad"。

cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git 
sudo chown -R etherpad:etherpad /opt/etherpad-lite

然后,转到 "opt/etherpad-lite "目录,为 Etherpad 安装 Node.js 依赖项。

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/run.sh" etherpad

以下是使用 pnpm 软件包管理器下载 Etherpad 依赖包的过程。



安装依赖包后,Etherpad 将自动运行。如下图所示,Etherpad 2.0.3 正在运行。


按 Ctrl+c 终止当前 Etherpad 进程。你将使用 MariaDB 数据库配置 Etherpad。



用 nano 编辑器打开 settings.json 文件。

nano settings.json

更改 Etherpad 安装的标题。

 "title": "Etherpad Ubuntu 24",

将默认 IP 地址更改为 12.0.0.1 或 localhost。这将仅在 localhost 启动 Etherpad 进程。

```
"ip": "127.0.0.1",
"port": 9001,
```

注释默认的 "dirty "数据库配置,如下所示:

 /*
*"dbType": "dirty",
*"dbSettings": {
* "filename": "var/dirty.db"
*},
*/

插入以下配置,使用 MariaDB 服务器建立数据库。确保将数据库信息的细节与你的数据库信息一致。

 "dbType" : "mysql",
"dbSettings" : {
"user": "etherpad",
"host": "127.0.0.1",
"port": 3306,
"password": "StrongPasswordEtherpadDB",
"database": "etherpad_db",
"charset": "utf8mb4"
},

完成后,保存文件并退出编辑器。


将 Etherpad 作为 systemd 服务运行


安装并配置好 Etherpad 后,为 Etherpad 创建一个新的 systemd 服务文件。这样,你就可以在后台运行 Etherpad,并通过 "systemctl "命令管理 Etherpad。


使用 nano 编辑器为 Etherpad 创建新的 systemd 服务文件"/etc/systemd/system/etherpad.service"。

sudo nano /etc/systemd/system/etherpad.service

在文件中添加以下配置。这样,你就能通过 "pnpm "命令将 Etherpad 作为 systemd 服务在后台运行。

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target mariadb.service

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
ExecStart=/usr/local/bin/pnpm run prod
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

[Install]
WantedBy=multi-user.target


现在运行下面的命令重新加载 systemd 管理器并应用 Etherpad 服务文件。

sudo systemctl daemon-reload

systemd 重载后,使用以下 systemctl 命令启动并启用 "etherpad "服务。

sudo systemctl start etherpad
sudo systemctl enable etherpad

接下来,运行以下命令检查 Etherpad 服务状态,确保服务正在运行。

sudo systemctl status etherpad

如下所示,Etherpad 服务正在作为服务运行。


最后,使用下面的 "ss "命令检查 Etherpad 的默认端口 9001。你会看到 Etherpad 进程使用了 9001 端口。

ss -tulpn | grep 9001


将 Nginx 设置为反向代理


在本指南中,你将使用 Nginx 作为反向代理运行 Etherpad。现在,你将为Etherpa创建Nginx服务器块配置,并确保你已经为Etherpad准备好域名。


使用下面的 nano 编辑器命令创建新的 Nginx 服务器块"/etc/nginx/sites-available/etherpad.conf"。

sudo nano /etc/nginx/sites-available/etherpad.conf

添加以下配置,并用你的域名更改 server_name 选项。通过此配置,你将使用 Nginx 作为 Etherpad 的反向代理,Etherpad 的端口为 9001。

```
server {
listen 80;
server_name etherpad.hwdomain.io;

access_log /var/log/nginx/eplite.access.log;
error_log /var/log/nginx/eplite.error.log;

location / {
proxy_pass http://127.0.0.1:9001;
proxy_buffering off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
proxy_set_header Host $host;
proxy_pass_header Server;
# Note you might want to pass these headers etc too.
proxy_set_header X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

完成后保存并关闭文件。


现在运行下面的命令激活服务器块 "etherpad.conf "文件,并验证 Nginx 语法。

sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t

你应该会看到输出 "nginx is ok...test is successful"(nginx 正常语法)。


最后,运行下面的命令重启 Nginx 服务并应用新的服务器块。执行命令后,你就可以通过 Nginx 网络服务器访问 Etherpad 了。

sudo systemctl restart nginx


使用HTTPS保护Etherpad


配置好 Nginx 反向代理后,就可以使用 HTTPS 保护 Etherpad 了。如果你使用的是公共域,你可以使用下面的步骤通过 Certbot 和 Letsencrypt 设置 HTTPS。本地域用户可以使用自签名证书。


使用以下命令安装 Certbot 和 Certbot Nginx 插件。出现提示时,键入 Y 确认安装。

sudo apt install certbot python3-certbot-nginx

现在运行以下 certbot 命令,从 Letsencrypt 生成 SSL/TLS 证书。确保将域名和电子邮件地址更改为你的详细信息。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email user@hwdomain.io -d etherpad.hwdomain.io

完成该过程后,你的证书将出现在"/etc/letsencrypt/live/domain.com "目录下。此外,你的 Etherpad 安装将通过 Certbot Nginx 插件自动运行 HTTPS。


访问 Etherpad


访问你的Etherpad域名 https://etherpad.hwdomain.io 来访问你的Etherpad安装。如果成功,你将看到以下页面:


为你的第一个PAD键入新名称,点击 "确定 "确认。



现在你将看到 Etherpad 的文档编辑器。现在你可以和你的朋友或同事同时编辑文档了。



总结


恭喜你!你已经在 Ubuntu 24.04 服务器上安装了 Etherpad 编辑器。Etherpad 与 MariaDB 数据库服务器和 Nginx 网络服务器一起运行。此外,你还通过 Certbot 和 Letsencrypt 确保了 Etherpad 的 HTTPS 安全。

文章相关标签: Ubuntu 24.04 Etherpad 编辑器
购物车