在雲伺服器安裝 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] 就是你的實際網址喔!完成!
參考資料: