在雲伺服器安裝 Etherpad-lite

Etherpad 是一個可以線上即時協作的編輯器,可以讓很多人同時編輯一份文件。

此教學文章將會引導您安裝並擁有自己的 Etherpad。

備註

此教學將會使用到下列軟體:
  • Debian 10.3
  • Node.js 13.x
  • Etherpad 1.8.0
  • Nginx 1.14.2

根據您使用的版本,步驟可能會略為不同。

步驟 1:安裝相依套件與準備環境

我們假設您已經有 建立一台雲伺服器

使用 SSH 登入主機:

$ ssh admin@1.2.3.4

切換到 root 身份,並確認系統已經是最新的版本:

$ su
# apt update
# apt upgrade

之後,請安裝 git、mariadb 與 nginx:

# apt install git nginx mariadb-server

接者,請安裝 Node.js 與 npm:

# curl -sL https://deb.nodesource.com/setup_13.x | bash -
# apt install -y nodejs

同時也建議另外建立一個使用者來執行 Etherpad:

# useradd -mU etherpad

伺服器已設定完畢,接者請建立資料庫。

步驟 2:建立資料庫

Etherpad-lite 可以不使用資料庫,通常是測試或是個人使用。絕大部分的情況下,都會建議使用資料庫。

我們將會建立一個給 Etherpad-lite 使用的資料庫。資料庫的名稱是 db_etherpad

# mysql

MariaDB [(none)]> CREATE DATABASE db_etherpad;
Query OK, 1 row affected (0.001 sec)

接者,建立資料庫的使用者名稱與權限:

MariaDB [(none)]> GRANT ALL privileges ON db_etherpad.* TO 'etherpad'@'localhost' IDENTIFIED BY 'MotDePasse';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH privileges;
Query OK, 0 rows affected (0.001 sec)

離開 MySQL (Mariadb):

MariaDB [(none)]> \q
Bye

資料庫建立完成,現在只需要安裝 Etherpad-lite 即可,記得申請一個 網域名稱 或建立一個子域名。

步驟 3:安裝與設定 Etherpad-lite

切換到``etherpad`` 使用者帳號:

# su - etherpad

切換到 etherpad 的家目錄 /home/etherpad

$ cd

使用 Git 下載最新的 Etherpad-lite:

$ git clone https://github.com/ether/etherpad-lite.git

進入 etherpad-lite 的目錄後,執行 run.sh 之後會自動安裝相依套件。執行 run.sh 需使用 root 權限:

$ cd etherpad-lite
$ su -c bin/run.sh

執行完畢後,使用 Ctrl + C 退出。

接者,設定 Node.js 的環境變數:

$ export NODE_ENV=production

當您使用 root 執行 run.sh 時,所建立的檔案都是 root 的權限,我們使用一般使用者執行時會有問題,需要重新整權限。

切換回 root:

$ exit

修改檔案權限:

# chown -R etherpad:etherpad /home/etherpad/etherpad-lite

現在您可以修改 settings.json 檔:

切換回 etherpad 身份:

# su - etherpad

使用文字編輯器打開 settings.json

$ vim etherpad-lite/settings.json

編輯資料庫連線資訊:

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

改成您的資料庫連線資訊:

"dbType" : "mysql",
"dbSettings" : {
  "user":     "etherpad",
  "host":     "localhost",
  "port":     3306,
  "password": "MotDePasse",
  "database": "db_etherpad",
  "charset":  "utf8mb4"
},

接者,請編輯同一個檔案,請將管理員密碼修改成您的密碼,您就可以登入 Etherpad-lite 的管理介面:

"users": {
  "Administrator": {
      "password": "SOMEPASSWORD",
      "is_admin": true
      },
  },

/etc/systemd/system/ 中建立 etherpad-lite.service,內容如下:

[Unit]
Description=etherpad (collaborative editing of documents in real-time)
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
Environment=NODE_ENV=production
ExecStart=/home/etherpad/etherpad-lite/bin/run.sh

[Installer]
WantedBy=multi-user.target

執行下列的指令設定開機時啟動服務:

# systemctl daemon-reload
# systemctl enable etherpad-lite

接者,立刻啟動服務:

# systemctl start etherpad-lite

若設定正確,服務將會正常啟動。

您的 etherpad 完成建立,並且啟動在 http://127.0.0.1:9001

步驟 4:設定 Nginx ,將子網域指向服務 Etherpad

我們假設您已經有 SSL 憑證,所以我們會開始教您設定 Nginx。

需使用 root 身份,建立 nginx 的網站設定檔案:

# vim /etc/nginx/sites-available/pad.yourdomain.conf

將下列的內容複製到您的設定檔內。請將 「pad.yourdomain.com」 改為您的實際網址。

map $http_upgrade $connection_upgrade {
default upgrade;
''      close;
}

server {
  listen      80;
  server_name pad.yourdomain.com;
  rewrite     ^(.*)   https://$server_name$1 permanent;
  }

server {
    listen       443 ssl;
    server_name  pad.yourdomain.com;

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

    ssl_certificate      /path/to/your/certificate.crt;
    ssl_certificate_key  /path/to/your/private.key;

    location / {
        proxy_pass             http://localhost:9001/;
        proxy_set_header       Host $host;
        proxy_pass_header Server;
        # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule
        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_set_header Host $host;  # pass the host header
        proxy_http_version 1.1;  # recommended with keepalive connections
        # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

接者,啟用您的網站設定檔即可,請記得將 「pad.yourdomain.com」 改為您的實際網址。

# ln -s /etc/nginx/sites-available/pad.yourdomain.conf /etc/nginx/sites-enabled/pad.yourdomain.conf

重新啟動 Nginx:

# systemctl restart nginx

若一切順利,您的 Etherpad 已完成安裝,並且可以使用 https://[pad.yourdomain.com]/ ,使用 https://[pad.yourdomain.com]/admin/ 來登入管理介面。[pad.yourdomain.com] 就是你的實際網址喔!完成!

參考資料: