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.
[*]
Một số gói và phụ thuộc mà bạn cần trước khi cài đặt Pleroma.
Bạn sẽ nhận được kết quả sau.
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ó.
Cho phép các cổng HTTP và HTTPS như tốt.
Bật Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy kết quả tương tự.
Thêm khóa GPG của kho lưu trữ.
Cập nhật danh sách các gói hệ thống.
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.
Tải Pleroma xuống một vị trí tạm thời.
Giải nén tệp lưu trữ.
Cài đặt Pleroma.
Xóa tệp tạm thời files.
Chuyển sang người dùng root.
Tạo thư mục cho các tệp tải lên và tệp công khai.
Tạo thư mục để cấu hình Pleroma.
Thay đổi quyền sở hữu các thư mục Pleroma thành người dùng Pleroma.
Chạy lệnh sau để tạo tệp cấu hình cho phiên bản Pleroma.
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.
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
Chuyển sang người dùng PostgreSQL mặc định được tạo khi PostgreSQL được cài đặt.
Tạo cơ sở dữ liệu bằng tệp SQL do Pleroma cung cấp.
Chuyển lại về người dùng Pleroma.
Khởi tạo cơ sở dữ liệu mà chúng ta vừa tạo.
Thoát đến người dùng Root.
Để 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.
Xóa mọi phiên bản cũ của Certbot.
Cài đặt 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
Dừng dịch vụ Nginx.
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo thư mục gốc web thử thách để tự động gia hạn Let's Encrypt.
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
Dán mã sau.
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.
Thay thế tất cả các lần xuất hiện của
Mở tệp cấu hình để chỉnh sửa.
Bỏ chú thích cho khối
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.
Bật máy chủ Nginx để khởi động khi khởi động.
Khởi động máy chủ 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.
Bật và khởi động dịch vụ Pleroma.
Có thể mất khoảng 30 giây để trang web Pleroma khả dụng. Bây giờ, bạn có thể mở
Tạo người dùng quản trị. Thay
Chuyển lại về người dùng gốc sau khi bạn hoàn tất.
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.
Dừng phiên bản Pleroma.
Bước tiếp theo là di chuyển cơ sở dữ liệu.
Khởi động phiên bản Pleroma.
Chuyển đến thư mục của Pleroma.
Chạy lệnh sau để sao lưu cơ sở dữ liệu.
Sao chép các tệp
Khởi động lại dịch vụ Pleroma.
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.
Khôi phục lược đồ cơ sở dữ liệu và vai trò Pleroma Postgres bằng tệp
Tiếp theo, khôi phục dữ liệu của phiên bản Pleroma.
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.
Khởi động lại dịch vụ Pleroma.
Tạo số liệu thống kê để Postgres có thể lập kế hoạch truy vấn phù hợp.
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
Mã:
Trạng thái: không hoạt động
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow 80$ sudo ufw allow 443
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
Mã:
$ sudo ufw status
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'
Mã:
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
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
Mã:
$ sudo su$ su pleroma -s $SHELL -l
Mã:
$ curl "https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=amd64" -o /tmp/pleroma_amd64.zip
Mã:
$ unzip /tmp/pleroma_amd64.zip -d /tmp/
Mã:
$ mv /tmp/release/* /opt/pleroma
Mã:
$ rm -rf /tmp/pleroma_amd64.zip /tmp/release
Mã:
$ exit
Mã:
$ mkdir -p /var/lib/pleroma/{uploads,static}
Mã:
$ mkdir -p /etc/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
Mã:
$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql
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.
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
Mã:
$ psql -f /tmp/setup_db.psql
Mã:
$ exit$ su pleroma -s /bin/bash -l
Mã:
$ ./bin/pleroma_ctl di chuyển
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
Mã:
$ apt remove certbot
Mã:
$ snap install --classic certbot
/usr/bin
.
Mã:
$ ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ systemctl stop nginx
Mã:
$ certbot certonly --standalone --preferred-challenges http -d example.com
/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
/etc/cron.daily/certbot-renew
và mở tệp đó để chỉnh sửa.
Mã:
$ nano /etc/cron.daily/certbot-renew
Mã:
#!/bin/shcertbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
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
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ã:
$ nano /etc/nginx/sites-available/pleroma.conf
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; }}
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
Mã:
$ systemctl enable nginx.
Mã:
$ systemctl start nginx
Mã:
$ mv /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
Mã:
$ systemctl enable pleroma$ systemctl start pleroma
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
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
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
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"
Mã:
$ systemctl stop pleroma
Mã:
$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
Mã:
$ systemctl start pleroma
Đang sao lưu Pleroma
Dừng dịch vụ Pleroma.
Mã:
$ systemctl stop pleroma
Mã:
$ cd /opt/pleroma
Mã:
$ sudo -Hu postgres pg_dump -d
--format=custom -f
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 ;'
setup_db.sql
đã sao lưu.
Mã:
$ sudo -Hu postgres psql -f config/setup_db.psql
Mã:
$ sudo -Hu postgres pg_restore -d
-v -1
Mã:
$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"
Mã:
$ systemctl restart pleroma
Mã:
$ sudo -Hu postgres vacuumdb --all --analyze-in-stages