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.
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ủ.
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:
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.
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:
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.
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 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
Để bảo mật máy chủ MariaDB, hãy thực hiện lệnh sau:
Bạn sẽ được nhắc cấu hình máy chủ MariaDB:
Đă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.
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.
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'.
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
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.
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.
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'.
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.
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.
Thay đổi tiêu đề cho Etherpad của bạn cài đặt.
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ộ.
Bình luận cấu hình cơ sở dữ liệu 'bẩn' mặc định như sau:
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.
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
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.
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'.
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.
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.
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.
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.
Sử dụng lệnh nano editor sau để tạo khối máy chủ Nginx mới '/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.
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.
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.
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.
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.
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.
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
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
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
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
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
- 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.
- 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.
- Nhập Y để xóa người dùng ẩn danh khỏi cài đặt MariaDB của bạn.
- 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.
- Nhập Y để xóa kiểm tra cơ sở dữ liệu mặc định khỏi MariaDB của bạn.
- 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.
Đă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
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;
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
Mã:
sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad
Mã:
cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git
sudo chown -R etherpad:etherpad /opt/etherpad-lite
Mã:
cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/run.sh" etherpad
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
Mã:
"title": "Etherpad Ubuntu 24",
Mã:
```
"ip": "127.0.0.1",
"port": 9001,
```
Mã:
/*
*"dbType": "dirty",
*"dbSettings": {
* "filename": "var/dirty.db"
*},
*/
Mã:
"dbType" : "mysql",
"dbSettings" : {
"user": "etherpad",
"host": "127.0.0.1",
"port": 3306,
"password": "StrongPasswordEtherpadDB",
"database": "etherpad_db",
"charset": "utf8mb4"
},
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
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
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
Mã:
sudo systemctl start etherpad
sudo systemctl enable etherpad
Mã:
sudo systemctl status etherpad
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
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";
}
}
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
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
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d etherpad.howtoforge.local
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