如何在 Debian 11 上安装 Etherpad

2023年 7月 21日 40.3k 0

Etherpad 是用Node.js编写的,并且支持成千上万的同时实时用户。Etherpad 是一个高度可定制的编辑器,支持各种插件。并且还支持现代文档格式,例如 doc、pdf 等。Etherpad-logo

在 Debian 11 Bullseye 上安装 Etherpad

apt步骤 1. 在我们安装任何软件之前,通过在终端中运行以下命令来确保您的系统是最新的,这一点很重要:

sudo apt update
sudo apt upgrade
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential

步骤 2. 安装 Node.js。

Etherpad 是用 Node.js 编写的,所以它必须安装在您的服务器上:

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

接下来,通过运行以下命令从 Nodesource 存储库安装 Node.js 16.x:

sudo apt install nodejs

验证 Node.js 版本:

node --version

步骤 3. 安装 MariaDB。

运行以下命令在您的服务器上安装 MariaDB :

sudo apt install mariadb-server

默认情况下,MariaDB 未加固。mysql_secure_installation您可以使用脚本保护 MariaDB 。您应该仔细阅读下面的每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录,以及删除测试数据库和访问安全 MariaDB:

mysql_secure_installation

像这样配置它:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

接下来,我们需要登录 MariaDB 控制台并为 Etherpad 创建一个数据库。运行以下命令:

mysql -u root -p

这将提示您输入密码,因此请输入您的 MariaDB 根密码并按 Enter。登录到数据库服务器后,您需要为 Etherpad 安装创建一个数据库:

MariaDB [(none)]> CREATE DATABASE etherpad_db;
MariaDB [(none)]> CREATE USER 'etherpad_user'@'localhost' IDENTIFIED BY 'your-strong-password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON etherpad_db.* to etherpad_user@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

步骤 4. 在 Debian 11 上安装 Etherpad。

默认情况下,Etherpad 在 Debian 11 基础存储库中不可用。所以,现在我们从官方页面下载最新的稳定版 Etherpad:

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad
git clone --branch master https://github.com/ether/etherpad-lite.git

我们将需要更改一些文件夹权限:

sudo chown -R etherpad:etherpad etherpad-lite

接下来,导航到目录“ ”并使用安装程序脚本“ ”安装所有 Node.js 依赖项:etherpad-lite/installDeps.sh

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

步骤 5. 配置 Etherpad。

现在我们编辑文件并定义您的数据库设置:settings.json

nano settings.json

注释掉以下几行:

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

更改以下行:

  "dbType" : "mysql",
  "dbSettings" : {
    "user":     "etherpad_user",
    "host":     "localhost",
    "port":     3306,
    "password": "your-strong-password",
    "database": "etherpad_db",
    "charset":  "utf8mb4"
  },

步骤 6. 为 Etherpad 创建 Systemd 服务文件。

现在创建一个systemd服务文件来管理 Etherpad 服务:

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

添加以下文件:

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

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

[Install]
WantedBy=multi-user.target

保存并关闭文件,然后重新加载systemd管理器以应用新的服务文件:

sudo systemctl daemon-reload
sudo systemctl enable --now etherpad
sudo systemctl status etherpad

步骤 7. 为 Etherpad 配置 Nginx 反向代理。

首先,使用以下命令安装 Nginx:

sudo apt install nginx

安装 Nginx 后,使用以下命令启动并启用 Nginx 服务:

sudo systemctl start nginx
sudo systemctl enable nginx

接下来,创建一个 Nginx 虚拟主机配置文件:

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

添加以下文件:

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  etherpad.example.io;
    return 301   https://$host$request_uri;
}

# we're in the http context here
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  etherpad.your-domain.com;

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

    ssl_certificate      /etc/letsencrypt/live/etherpad.example.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.io/privkey.pem;

    ssl_session_timeout  5m;

    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
    EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 
    EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

    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 $connection_upgrade;
    }
}

保存并关闭文件,然后激活虚拟主机配置:

sudo ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
nginx -t
sudo systemctl restart nginx

步骤 8. 配置防火墙。

默认情况下,在 Debian 上启用了 UFW 防火墙。根据您的 Apache 虚拟主机配置文件,打开端口 80 和 443 以允许 HTTP 和 HTTPS 流量:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

步骤 9. 访问 Etherpad Web 界面。

成功安装后,打开您的网络浏览器并使用 URL 访问 Matomo 。您将被重定向到 Matomo 界面页面:https://etherpad.your-domain.com

etherpad-web-interface

感谢您使用本教程在 Debian 11 Bullseye 上安装最新版本的 Etherpad。如需更多帮助或有用信息,我们建议您查看官方 Etherpad 网站。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论