Cách cài đặt Pleroma Social Network Platform trên Ubuntu 20.04

theanh

Administrator
Nhân viên
Pleroma là một nền tảng mạng xã hội liên kết nguồn mở, tương thích với Mastodon và các nền tảng ActivityPub khác. Đây là một phần của Fediverse, một mạng lưới liên kết các trường hợp có thể giao tiếp bằng một giao thức chung. Một tài khoản duy nhất trên một phiên bản có thể giao tiếp với toàn bộ mạng Fediverse.

Hướng dẫn này sẽ chỉ cho bạn cách tạo phiên bản Pleroma của riêng mình bằng cách cài đặt trên máy chủ chạy Ubuntu 20.04.

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


  • Máy chủ chạy Ubuntu 20.04.

  • Người dùng sudo không phải root.

  • Đảm bảo mọi thứ đã được cập nhật.
Mã:
$ sudo apt update$ sudo apt upgrade
[*]
Một số gói và phụ thuộc mà bạn cần trước khi cài đặt Pleroma.
Mã:
$ sudo apt install wget curl gnupg2 ca-certificates lsb-release gnupg zip libncurses5 libmagic-dev -y

Bước 1 - Cấu hình tường lửa Ubuntu mặc định có ufw (Uncomplicated Firewall).​

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Trạng thái: không hoạt động
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cho phép các cổng HTTP và HTTPS như tốt.
Mã:
$ sudo ufw allow 80$ sudo ufw allow 443
Bật Tường lửa
Mã:
$ sudo ufw enableLệnh có thể làm gián đoạn các kết nối ssh hiện có. Tiến hành thao tác (y|n)? yTường lửa đang hoạt động và được bật khi khởi động hệ thống
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Trạng thái: đang hoạt độngĐến Hành động Từ-- ------ ----OpenSSH CHO PHÉP Bất kỳ đâu80 CHO PHÉP Bất kỳ đâu443 CHO PHÉP Bất kỳ đâuOpenSSH (v6) CHO PHÉP Bất kỳ đâu (v6)80 (v6) CHO PHÉP Bất kỳ đâu (v6)443 (v6) CHO PHÉP Bất kỳ đâu (v6)

Bước 2 - Cài đặt PostgreSQL​

Thêm kho lưu trữ PostgreSQL chính thức vào danh sách nguồn Ubuntu.
Mã:
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Thêm khóa GPG của kho lưu trữ.
Mã:
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Cập nhật danh sách các gói hệ thống.
Mã:
$ sudo apt update

Bước 3 - Cài đặt Nginx​

Ubuntu 20.04 được cài đặt sẵn phiên bản ổn định Nginx 18 theo mặc định.
Mã:
$ sudo apt install nginx

Bước 4 - Cài đặt Pleroma​

Hướng dẫn này cài đặt Pleroma từ bản phát hành OTP. Bước đầu tiên là tạo người dùng Pleroma không có chức năng đăng nhập. Nó cũng sẽ tạo thư mục gốc cho nó tại /opt/pleroma.
Mã:
$ sudo adduser --system --shell /bin/false --home /opt/pleroma pleroma
Chuyển sang người dùng Pleroma. Nhưng trước tiên, chúng ta cần chuyển sang người dùng root.
Mã:
$ sudo su$ su pleroma -s $SHELL -l
Tải Pleroma xuống một vị trí tạm thời.
Mã:
$ curl "https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=amd64" -o /tmp/pleroma_amd64.zip
Giải nén tệp lưu trữ.
Mã:
$ unzip /tmp/pleroma_amd64.zip -d /tmp/
Cài đặt Pleroma.
Mã:
$ mv /tmp/release/* /opt/pleroma
Xóa tệp tạm thời files.
Mã:
$ rm -rf /tmp/pleroma_amd64.zip /tmp/release
Chuyển sang người dùng root.
Mã:
$ exit
Tạo thư mục cho các tệp tải lên và tệp công khai.
Mã:
$ mkdir -p /var/lib/pleroma/{uploads,static}
Tạo thư mục để cấu hình Pleroma.
Mã:
$ mkdir -p /etc/pleroma
Thay đổi quyền sở hữu các thư mục Pleroma thành người dùng Pleroma.
Mã:
$ chown -R pleroma /var/lib/pleroma /etc/pleroma

Bước 5 - Cấu hình Pleroma​

Chuyển về người dùng Pleroma.
Mã:
$ su pleroma -s /bin/bash -l
Chạy lệnh sau để tạo tệp cấu hình cho phiên bản Pleroma.
Mã:
$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql
Bạn sẽ được hỏi một số câu hỏi về việc thiết lập Pleroma. Nếu bạn nhận được cảnh báo cho biết không tìm thấy tệp cấu hình, hãy bỏ qua.
Mã:
pleroma@pleroma:~$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql!!! /etc/pleroma/config.exs không tìm thấy! Vui lòng đảm bảo rằng tệp này tồn tại và PLEROMA_CONFIG_PATH không được đặt hoặc trỏ đến một tệp hiện cóPhiên bản của bạn sẽ sử dụng tên miền nào? (ví dụ: pleroma.soykaf.com) [] example.comTên phiên bản của bạn là gì? (ví dụ: The Corndog Emporium) [nspeaks.com] Howtoforge PleromaĐịa chỉ email quản trị của bạn là gì? [] [emailprotected]Bạn muốn sử dụng địa chỉ email nào để gửi thông báo qua email? [[emailprotected]] Bạn có muốn công cụ tìm kiếm lập chỉ mục trang web của bạn không? (y/n) [y] yBạn có muốn lưu trữ cấu hình trong cơ sở dữ liệu (cho phép kiểm soát từ admin-fe) không? (y/n) [n] nTên máy chủ của cơ sở dữ liệu của bạn là gì? [localhost] localhostTên cơ sở dữ liệu của bạn là gì? [pleroma] pleromaNgười dùng được sử dụng để kết nối với cơ sở dữ liệu của bạn là gì? [pleroma] pleromaMật khẩu được sử dụng để kết nối với cơ sở dữ liệu của bạn là gì? [autogenerated] yourpasswordBạn có muốn sử dụng chỉ mục RUM không? [n] nỨng dụng sẽ lắng nghe cổng nào (bỏ qua nếu bạn đang sử dụng thiết lập mặc định với nginx)? [4000] Ứng dụng sẽ lắng nghe ip nào (bỏ qua nếu bạn đang sử dụng thiết lập mặc định với nginx)? [127.0.0.1] Phương tiện tải lên nên nằm trong thư mục nào (khi sử dụng trình tải lên cục bộ)? [/var/lib/pleroma/uploads] Nên đọc các tệp công khai tùy chỉnh từ thư mục nào (biểu tượng cảm xúc tùy chỉnh, ghi đè gói giao diện người dùng, robots.txt, v.v.)? [/var/lib/pleroma/static] Bạn có muốn xóa dữ liệu vị trí (GPS) khỏi hình ảnh đã tải lên không? Điều này yêu cầu exiftool, công cụ này được phát hiện là chưa được cài đặt, vui lòng cài đặt nếu bạn trả lời có. (y/n) [n] nBạn có muốn ẩn danh tên tệp của các tệp tải lên không? (y/n) [n] nBạn có muốn loại bỏ trùng lặp các tệp đã tải lên không? (y/n) [n] yĐang ghi config vào /etc/pleroma/config.exs.Đang ghi tập lệnh postgres vào /tmp/setup_db.psql.Đang ghi /var/lib/pleroma/static/robots.txt. Đã ghi thành công tất cả các tệp! Tham khảo hướng dẫn cài đặt cho nền tảng của bạn để biết các bước tiếp theo.
Bạn có thể chọn một bộ tùy chọn khác nhau tùy thuộc vào yêu cầu của mình. Chọn mật khẩu mạnh cho cơ sở dữ liệu của bạn. Nếu bạn muốn cấu hình phiên bản của mình từ Bảng quản trị, hãy chọn y cho câu hỏi về việc lưu trữ cấu hình trong cơ sở dữ liệu.

Chuyển sang người dùng PostgreSQL mặc định được tạo khi PostgreSQL được cài đặt.
Mã:
$ exit$ su postgres -s /bin/bash -l
Tạo cơ sở dữ liệu bằng tệp SQL do Pleroma cung cấp.
Mã:
$ psql -f /tmp/setup_db.psql
Chuyển lại về người dùng Pleroma.
Mã:
$ exit$ su pleroma -s /bin/bash -l
Khởi tạo cơ sở dữ liệu mà chúng ta vừa tạo.
Mã:
$ ./bin/pleroma_ctl di chuyển
Thoát đến người dùng Root.
Mã:
$ exit

Bước 6 - Cài đặt SSL bằng Let's Encrypt​

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần tải xuống công cụ Certbot.

Để cài đặt Certbot, chúng ta sẽ sử dụng trình cài đặt gói Snapd. Kho lưu trữ chính thức của Certbot đã không còn được sử dụng nữa và gói Certbot của Ubuntu đã hơn một năm tuổi. Snapd luôn mang theo phiên bản ổn định mới nhất của Certbot và bạn nên sử dụng phiên bản đó. May mắn thay, Ubuntu 20.04 đi kèm Snapd được cài đặt sẵn.

Đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ snap install core$ snap refresh core
Xóa mọi phiên bản cũ của Certbot.
Mã:
$ apt remove certbot
Cài đặt Certbot.
Mã:
$ snap install --classic certbot
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến thư mục /usr/bin.
Mã:
$ ln -s /snap/bin/certbot /usr/bin/certbot
Dừng dịch vụ Nginx.
Mã:
$ systemctl stop nginx
Tạo chứng chỉ SSL.
Mã:
$ certbot certonly --standalone --preferred-challenges http -d example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/example.com trên máy chủ của bạn.

Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
Mã:
$ mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ nano /etc/cron.daily/certbot-renew
Dán mã sau.
Mã:
#!/bin/shcertbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Mã:
$ chmod +x /etc/cron.daily/certbot-renew

Bước 7 - Cấu hình Nginx​

Pleroma được cung cấp kèm theo tệp cấu hình Nginx mặc định. Cài đặt bằng cách di chuyển nó đến thư mục /etc/nginx/sites-available.
Mã:
$ mv /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf
Thay thế tất cả các lần xuất hiện của example.tld bằng tên miền của bạn.
Mã:
$ sed -i 's/example\.tld/example.com/g' /etc/nginx/sites-available/pleroma.conf
Mở tệp cấu hình để chỉnh sửa.
Mã:
$ nano /etc/nginx/sites-available/pleroma.conf
Bỏ chú thích cho khối location ~ /\.well-known/acme-challenge. Khối server của tệp cấu hình của bạn sẽ trông như sau.
Mã:
server { server_name example.com; listen 80; listen [::]:80; location ~ /\.well-known/acme-challenge { root /var/lib/letsencrypt/; } location / { return 301 https://$server_name$request_uri; }}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bật cấu hình Pleroma Nginx bằng cách tạo liên kết tượng trưng.
Mã:
$ ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf
Bật máy chủ Nginx để khởi động khi khởi động.
Mã:
$ systemctl enable nginx.
Khởi động máy chủ Nginx.
Mã:
$ systemctl start nginx
Cài đặt tệp đơn vị dịch vụ systemd của Pleroma được cung cấp trong bản phân phối.
Mã:
$ mv /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
Bật và khởi động dịch vụ Pleroma.
Mã:
$ systemctl enable pleroma$ systemctl start pleroma
Có thể mất khoảng 30 giây để trang web Pleroma khả dụng. Bây giờ, bạn có thể mở https://example.com trong trình duyệt web của mình để truy cập Pleroma. Nó sẽ trông như sau.


Bước 8 - Cấu hình Pleroma​

Tạo người dùng Quản trị​

Bạn có thể tạo người dùng quản trị thông qua dòng lệnh. Trước tiên, hãy chuyển sang người dùng Pleroma.
Mã:
$ su pleroma -s /bin/bash -l
Tạo người dùng quản trị. Thay example bằng tên người dùng của bạn, [emailprotected] bằng địa chỉ email của bạn và password123 bằng mật khẩu mạnh.
Mã:
$ ./bin/pleroma_ctl user new example [emailprotected] --password password123 --admin
Chuyển lại về người dùng gốc sau khi bạn hoàn tất.
Mã:
$ exit

Thay đổi cài đặt​

Nếu bạn chọn không làm câu trả lời cho lưu trữ cấu hình trong cơ sở dữ liệu, điều đó có nghĩa là bạn không thể thay đổi cài đặt từ bảng Quản trị của Pleroma. Để thay đổi cài đặt, bạn sẽ cần sửa đổi tệp /etc/pleroma/config.exs.
Mã:
$ nano /etc/pleroma/config.exs
Sau khi chỉnh sửa xong tệp, bạn cũng cần khởi động lại dịch vụ Pleroma. Bạn có thể phải đợi một thời gian trước khi dịch vụ được tiếp tục.
Mã:
$ systemctl restart pleroma

Đang cập nhật Pleroma​

Để cập nhật Pleroma, bước đầu tiên là tải xuống bản phát hành mới. Chạy lệnh sau để tải xuống bản phát hành mới của Pleroma.
Mã:
$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"
Dừng phiên bản Pleroma.
Mã:
$ systemctl stop pleroma
Bước tiếp theo là di chuyển cơ sở dữ liệu.
Mã:
$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
Khởi động phiên bản Pleroma.
Mã:
$ systemctl start pleroma

Đang sao lưu Pleroma​

Dừng dịch vụ Pleroma.
Mã:
$ systemctl stop pleroma
Chuyển đến thư mục của Pleroma.
Mã:
$ cd /opt/pleroma
Chạy lệnh sau để sao lưu cơ sở dữ liệu.
Mã:
$ sudo -Hu postgres pg_dump -d 
 --format=custom -f
Sao chép các tệp pleroma.pgdump, config/prod.secret.exs, config/setup_db.sql và thư mục uploads vào đích sao lưu của bạn.

Khởi động lại dịch vụ Pleroma.
Mã:
$ systemctl start pleroma

Đang khôi phục Pleroma​

Để khôi phục Pleroma, bạn cần cài đặt lại Pleroma và đảm bảo dịch vụ Pleroma không hoạt động.

Sau đó sao chép các tệp đã sao lưu trở lại vị trí ban đầu của chúng.

Xóa cơ sở dữ liệu và người dùng hiện có bằng lệnh sau.
Mã:
$ sudo -Hu postgres psql -c 'DROP DATABASE 
;';` `sudo -Hu postgres psql -c 'DROP USER ;'
Khôi phục lược đồ cơ sở dữ liệu và vai trò Pleroma Postgres bằng tệp setup_db.sql đã sao lưu.
Mã:
$ sudo -Hu postgres psql -f config/setup_db.psql
Tiếp theo, khôi phục dữ liệu của phiên bản Pleroma.
Mã:
$ sudo -Hu postgres pg_restore -d 
 -v -1
Di chuyển cơ sở dữ liệu nếu vẫn còn bất kỳ lần di chuyển nào cần thực hiện trong trường hợp bạn đang di chuyển sang phiên bản mới hơn.
Mã:
$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
Khởi động lại dịch vụ Pleroma.
Mã:
$ systemctl restart pleroma
Tạo số liệu thống kê để Postgres có thể lập kế hoạch truy vấn phù hợp.
Mã:
$ sudo -Hu postgres vacuumdb --all --analyze-in-stages

Kết luận​

Như vậy là kết thúc hướng dẫn của chúng tôi về cách cài đặt Nền tảng mạng xã hội Pleroma trên máy chủ chạy Ubuntu 20.04. Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy đăng chúng vào phần bình luận bên dưới.
 
Back
Bên trên