Cách cài đặt Etherpad Collaboration Editor trên Ubuntu 24.04 Server

theanh

Administrator
Nhân viên
Etherpad là trình soạn thảo văn bản cộng tác và thời gian thực mã nguồn mở dành cho nhóm của bạn, có thể truy cập từ bất kỳ đâu vào bất kỳ lúc nào vì Etherpad là trình soạn thảo văn bản dựa trên web. Etherpad hỗ trợ phiên bản và định dạng tích hợp cho nhóm và cung cấp trình soạn thảo có thể tùy chỉnh cao với sự hỗ trợ của nhiều plugin khác nhau. Nó cũng hỗ trợ các định dạng tài liệu hiện đại như doc, pdf, odt, markdown, v.v.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn quy trình cài đặt trình soạn thảo cộng tác Etherpad vào máy chủ Ubuntu 24.04. Bạn sẽ thiết lập Etherpad với máy chủ cơ sở dữ liệu MariaDB, Nginx làm proxy ngược, sau đó bảo mật Etherpad bằng HTTPS thông qua Certbot và Letsencrypt.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có những điều sau:

Máy chủ Ubuntu 24.04.
Người dùng không phải root có quyền quản trị viên.
Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt Dependencies​

Etherpad là trình soạn thảo thời gian thực cộng tác được viết bằng Node.js. Để cài đặt, bạn phải cài đặt các gói phụ thuộc như Node.js, NPM và Git. Etherpad cũng yêu cầu Python3 và MySQL/MariaDB cho cơ sở dữ liệu.

Trước tiên, hãy cập nhật kho lưu trữ Ubuntu của bạn bằng nội dung sau:
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22733%22%20height=%22204%22%3E%3C/svg%3E


Bây giờ, hãy cài đặt các phần phụ thuộc cho Etherpad bằng lệnh bên dưới. Với lệnh này, bạn sẽ cài đặt máy chủ MariaDB, Nginx, Node.js, Python3, Git và một số công cụ thiết yếu.
Mã:
sudo apt install mariadb-server nginx nodejs npm gzip git curl python3 libssl-dev
Nhập Y để xác nhận cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E


Sau khi cài đặt, hãy kiểm tra dịch vụ MariaDB và Nginx để đảm bảo cả hai dịch vụ đều đang chạy.

Kiểm tra dịch vụ MariaDB bằng lệnh sau:
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Như bạn có thể thấy bên dưới, dịch vụ MariaDB đang chạy và sẽ tự động khởi động khi khởi động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E


Bây giờ hãy kiểm tra dịch vụ Nginx bằng lệnh bên dưới. Bạn sẽ nhận được kết quả tương tự khi dịch vụ Nginx đang chạy và được bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra phiên bản Node.js bằng lệnh.
Mã:
node -v
Đảm bảo bạn có Node.js v18.x trở lên. Etherpad hỗ trợ Node.js v18 trở lên.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22343%22%20height=%2291%22%3E%3C/svg%3E

Thiết lập máy chủ MariaDB​

Sau khi cài đặt các phần phụ thuộc, bạn sẽ cấu hình máy chủ MariaDB và tạo cơ sở dữ liệu và người dùng mới cho Etherpad. Bạn sẽ bảo mật MariaDB bằng tiện ích 'mariadb-secure-installation', sau đó thiết lập cơ sở dữ liệu và người dùng thông qua máy khách MariaDB.

Để bảo mật máy chủ MariaDB, hãy thực hiện lệnh sau:
Mã:
sudo mariadb-secure-installation
Bạn sẽ được nhắc cấu hình máy chủ MariaDB:
  1. Cài đặt MariaDB mặc định không có mật khẩu, hãy nhấn ENTER khi được nhắc nhập mật khẩu.
  2. Bây giờ hãy nhập Y để thiết lập mật khẩu gốc MariaDB. Sau đó, nhập mật khẩu mới cho MariaDB và lặp lại mật khẩu.
  3. Nhập Y để xóa người dùng ẩn danh khỏi cài đặt MariaDB của bạn.
  4. Nhập Y một lần nữa khi được nhắc tắt đăng nhập từ xa cho người dùng gốc MariaDB.
  5. Nhập Y để xóa kiểm tra cơ sở dữ liệu mặc định khỏi MariaDB của bạn.
  6. Cuối cùng, nhập Y để tải lại các đặc quyền bảng và áp dụng các thay đổi mới.
Sau khi bạn đã bảo mật và định cấu hình máy chủ MariaDB, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới cho Etherpad.

Đăng nhập vào máy chủ MariaDB bằng lệnh sau. Nhập mật khẩu gốc MariaDB khi được nhắc.
Mã:
sudo mariadb -u root -p
Tiếp theo, chạy các truy vấn MariaDB sau để tạo cơ sở dữ liệu mới 'etherpad_db', người dùng 'etherpad', với mật khẩu 'StrongPasswordEtherpadDB'. Bạn có thể điều chỉnh các chi tiết cơ sở dữ liệu sau bằng thông tin của mình.
Mã:
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;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22189%22%3E%3C/svg%3E


Bây giờ hãy chạy truy vấn sau để đảm bảo rằng người dùng 'etherpad' có thể truy cập cơ sở dữ liệu 'etherpad_db'.
Mã:
SHOW GRANTS FOR etherpad@localhost;
Bạn có thể thấy người dùng 'etherpad' bên dưới có nhiều đặc quyền đối với cơ sở dữ liệu 'etherpad_db'.

Cuối cùng, nhập quit để thoát khỏi máy chủ MariaDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E

Cài đặt Etherpad Lite​

Sau khi tạo cơ sở dữ liệu và người dùng, bạn sẽ tải xuống mã nguồn Etherpad, cài đặt các phần phụ thuộc Etherpad bằng tập lệnh cài đặt, sau đó cấu hình cài đặt Etherpad bằng máy chủ MariaDB.

Theo mặc định, Etherpad sử dụng trình quản lý gói pnpm để quản lý cài đặt, vì vậy trước tiên bạn phải cài đặt 'pnpm' trên toàn cầu vào hệ thống của mình.

Trước tiên, hãy cài đặt gói pnpm trên toàn cầu (-g) bằng lệnh npm sau. Theo mặc định, dự án Etherpad sử dụng pnpm làm trình quản lý gói Node.js thay vì npm tiêu chuẩn.
Mã:
npm install pnpm -g
Bây giờ hãy chạy lệnh bên dưới để tạo người dùng hệ thống mới 'etherpad'. Người dùng này sẽ được sử dụng để chạy ứng dụng Etherpad.
Mã:
sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad
Tiếp theo, hãy vào /opt và tải mã nguồn Etherpad xuống thư mục 'etherpad-lite' bằng git. Sau đó, thay đổi quyền sở hữu thư mục '/opt/etherpad-lite' thành người dùng 'etherpad'.
Mã:
cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git 
sudo chown -R etherpad:etherpad /opt/etherpad-lite
Sau đó, hãy đến thư mục 'opt/etherpad-lite' và cài đặt các phụ thuộc Node.js cho Etherpad bằng sau đây.
Mã:
cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/run.sh" etherpad
Dưới đây là quy trình tải xuống các phụ thuộc Etherpad bằng trình quản lý gói pnpm.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22391%22%3E%3C/svg%3E


Sau khi các phụ thuộc được cài đặt, Etherpad sẽ tự động chạy. Bạn có thể thấy bên dưới rằng Etherpad 2.0.3 đang chạy.

Nhấn Ctrl+c để kết thúc tiến trình Etherpad hiện tại. Bạn sẽ cấu hình Etherpad với cơ sở dữ liệu MariaDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22340%22%3E%3C/svg%3E


Bây giờ hãy mở tệp 'settings.json' bằng trình chỉnh sửa nano sau.
Mã:
nano settings.json
Thay đổi tiêu đề cho Etherpad của bạn cài đặt.
Mã:
"title": "Etherpad Ubuntu 24",
Thay đổi địa chỉ IP mặc định thành 12.0.0.1 hoặc localhost. Thao tác này sẽ chỉ khởi động tiến trình Etherpad trong máy chủ cục bộ.
Mã:
```
 "ip": "127.0.0.1",
 "port": 9001, 
```
Bình luận cấu hình cơ sở dữ liệu 'bẩn' mặc định như sau:
Mã:
/*
 *"dbType": "dirty",
 *"dbSettings": {
 * "filename": "var/dirty.db"
 *},
 */
Chèn cấu hình bên dưới để thiết lập cơ sở dữ liệu với máy chủ MariaDB. Đảm bảo thay đổi thông tin chi tiết của cơ sở dữ liệu bằng thông tin của bạn.
Mã:
"dbType" : "mysql",
 "dbSettings" : {
 "user": "etherpad",
 "host": "127.0.0.1",
 "port": 3306,
 "password": "StrongPasswordEtherpadDB",
 "database": "etherpad_db",
 "charset": "utf8mb4"
 },
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Chạy Etherpad dưới dạng dịch vụ systemd​

Bây giờ bạn đã cài đặt và định cấu hình Etherpad, bạn sẽ tạo tệp dịch vụ systemd mới cho Etherpad. Với lệnh này, bạn sẽ chạy Etherpad ở chế độ nền và bạn có thể quản lý Etherpad thông qua lệnh 'systemctl'.

Tạo tệp dịch vụ systemd mới cho Etherpad '/etc/systemd/system/etherpad.service' bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/systemd/system/etherpad.service
Thêm cấu hình sau vào tệp. Với lệnh này, bạn sẽ chạy Etherpad ở chế độ nền như một dịch vụ systemd thông qua lệnh 'pnpm'.
Mã:
[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
Lưu tệp và thoát.

Bây giờ hãy chạy lệnh bên dưới để tải lại trình quản lý systemd và áp dụng tệp dịch vụ Etherpad.
Mã:
sudo systemctl daemon-reload
Sau khi systemd tải lại, hãy khởi động và kích hoạt dịch vụ 'etherpad' bằng lệnh systemctl sau lệnh.
Mã:
sudo systemctl start etherpad
sudo systemctl enable etherpad
Tiếp theo, chạy lệnh bên dưới để kiểm tra trạng thái dịch vụ Etherpad và đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status etherpad
Bạn có thể thấy bên dưới dịch vụ Etherpad đang chạy dưới dạng một dịch vụ.

Cuối cùng, hãy kiểm tra cổng Etherpad mặc định 9001 bằng lệnh 'ss' bên dưới. Bạn sẽ thấy cổng 9001 được quy trình Etherpad sử dụng.
Mã:
ss -tulpn | grep 9001

Thiết lập Nginx làm proxy ngược​

Bạn sẽ chạy Etherpad với Nginx làm proxy ngược trong hướng dẫn này. Bây giờ bạn sẽ tạo cấu hình khối máy chủ Nginx cho Etherpa và đảm bảo bạn đã chuẩn bị tên miền cho Etherpad.

Sử dụng lệnh nano editor sau để tạo khối máy chủ Nginx mới '/etc/nginx/sites-available/etherpad.conf'.
Mã:
sudo nano /etc/nginx/sites-available/etherpad.conf
Thêm cấu hình sau và thay đổi tùy chọn server_name bằng tên miền của bạn. Với cấu hình này, bạn sẽ sử dụng Nginx làm proxy ngược cho Etherpad, chạy trên cổng 9001.
Mã:
```
server {
 listen 80;
 server_name etherpad.howtoforge.local;

 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";
 }

}
Lưu và đóng tệp khi hoàn tất.

Bây giờ hãy chạy lệnh bên dưới để kích hoạt tệp 'etherpad.conf' của khối máy chủ và xác minh Nginx của bạn cú pháp.
Mã:
sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t
Bạn sẽ nhận được kết quả 'nginx is ok...test is successful' với cú pháp Nginx phù hợp.

Cuối cùng, hãy chạy lệnh bên dưới để khởi động lại dịch vụ Nginx và áp dụng khối máy chủ mới của bạn. Sau khi thực hiện lệnh, Etherpad của bạn có thể truy cập được thông qua máy chủ web Nginx.
Mã:
sudo systemctl restart nginx

Bảo mật Etherpad bằng HTTPS​

Sau khi cấu hình proxy ngược Nginx, bạn sẽ bảo mật Etherpad bằng HTTPS. Nếu bạn đang sử dụng miền công cộng, bạn có thể sử dụng các bước sau để thiết lập HTTPS bằng Certbot và Letsencrypt. Người dùng miền cục bộ có thể sử dụng chứng chỉ tự ký.

Cài đặt Certbot và plugin Certbot Nginx bằng lệnh sau. Khi được nhắc, hãy nhập Y để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-certbot-nginx
Bây giờ hãy chạy lệnh certbot sau để tạo chứng chỉ SSL/TLS từ Letsencrypt. Hãy đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin chi tiết của bạn.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d etherpad.howtoforge.local
Sau khi hoàn tất quy trình, chứng chỉ của bạn sẽ có trong thư mục '/etc/letsencrypt/live/domain.com'. Ngoài ra, cài đặt Etherpad của bạn sẽ tự động chạy với HTTPS thông qua plugin Certbot Nginx.

Truy cập Etherpad​

Truy cập tên miền Etherpad của bạnhttps://etherpad.howtoforge.local để truy cập cài đặt Etherpad của bạn. Nếu thành công, bạn sẽ nhận được trang sau:

Nhập tên mới cho pad đầu tiên của bạn và nhấp vào OK để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22430%22%3E%3C/svg%3E


Bây giờ bạn sẽ thấy trình soạn thảo tài liệu cho Etherpad. Bây giờ bạn có thể chỉnh sửa tài liệu cùng lúc với bạn bè hoặc đồng nghiệp của mình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22301%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã cài đặt trình chỉnh sửa cộng tác Etherpad trên máy chủ Ubuntu 24.04. Bạn đã chạy Etherpad với máy chủ cơ sở dữ liệu MariaDB và máy chủ web Nginx. Ngoài ra, bạn đã bảo mật Etherpad bằng HTTPS thông qua Certbot và Letsencrypt.
 
Back
Bên trên