GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Platform Jejaring Sosial Pleroma di Ubuntu 20.04

Pleroma adalah platform jejaring sosial federasi sumber terbuka, kompatibel dengan Mastodon dan platform ActivityPub lainnya. Ini adalah bagian dari Fediverse, jaringan instance gabungan yang dapat berkomunikasi menggunakan protokol umum. Satu akun dalam satu instans dapat berbicara dengan seluruh jaringan Fediverse.

Panduan ini akan menunjukkan cara membuat instance Pleroma Anda sendiri dengan menginstalnya di server berbasis Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.

  • Pengguna sudo non-root.

  • Pastikan semuanya diperbarui.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Beberapa paket dan dependensi yang Anda perlukan sebelum menginstal Pleroma.

    $ sudo apt install wget curl gnupg2 ca-certificates lsb-release gnupg zip libncurses5 libmagic-dev -y
    

Langkah 1 - Konfigurasi Firewall

Langkah pertama adalah mengkonfigurasi firewall. Ubuntu hadir dengan ufw (Uncomplicated Firewall) secara default.

Periksa apakah firewall sedang berjalan.

$ sudo ufw status

Anda akan mendapatkan output berikut.

Status: inactive

Izinkan port SSH agar firewall tidak memutus koneksi saat ini saat mengaktifkannya.

$ sudo ufw allow OpenSSH

Izinkan port HTTP dan HTTPS juga.

$ sudo ufw allow 80
$ sudo ufw allow 443

Aktifkan Firewall

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Periksa kembali status firewall.

$ sudo ufw status

Anda akan melihat keluaran serupa.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Langkah 2 - Instal PostgreSQL

Tambahkan repositori PostgreSQL resmi ke daftar sumber Ubuntu.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Tambahkan kunci GPG repositori.

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Perbarui daftar paket sistem.

$ sudo apt update

Langkah 3 - Instal Nginx

Ubuntu 20.04 dikirimkan dengan versi stabil Nginx 18 secara default.

$ sudo apt install nginx

Langkah 4 - Instal Pleroma

Panduan ini menginstal Pleroma dari rilis OTP. Langkah pertama adalah membuat pengguna Pleroma tanpa kemampuan login. Itu juga akan membuat direktori home untuknya di /opt/pleroma .

$ sudo adduser --system --shell  /bin/false --home /opt/pleroma pleroma

Beralih ke pengguna Pleroma. Tapi pertama-tama, kita perlu beralih ke pengguna root.

$ sudo su
$ su pleroma -s $SHELL -l

Unduh Pleroma ke lokasi sementara.

$ curl "https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=amd64" -o /tmp/pleroma_amd64.zip

Buka zip arsip.

$ unzip /tmp/pleroma_amd64.zip -d /tmp/

Instal Pleroma.

$ mv /tmp/release/* /opt/pleroma

Hapus file-file sementara.

$ rm -rf /tmp/pleroma_amd64.zip /tmp/release

Beralih ke pengguna root.

$ exit

Buat direktori untuk unggahan dan file publik.

$ mkdir -p /var/lib/pleroma/{uploads,static}

Buat direktori untuk konfigurasi Pleroma.

$ mkdir -p /etc/pleroma

Ubah kepemilikan direktori Pleroma menjadi pengguna Pleroma.

$ chown -R pleroma /var/lib/pleroma /etc/pleroma

Langkah 5 - Konfigurasi Pleroma

Beralih kembali ke pengguna Pleroma.

$ su pleroma -s /bin/bash -l

Jalankan perintah berikut untuk menghasilkan file konfigurasi untuk instance Pleroma.

$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql

Anda akan ditanya beberapa pertanyaan tentang pengaturan Pleroma. Jika Anda mendapatkan peringatan yang menyatakan bahwa file konfigurasi tidak dapat ditemukan, abaikan saja.

[email protected]:~$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql
!!! /etc/pleroma/config.exs not found! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file

What domain will your instance use? (e.g pleroma.soykaf.com) [] example.com

What is the name of your instance? (e.g. The Corndog Emporium) [nspeaks.com] Howtoforge Pleroma
What is your admin email address? [] [email protected]
What email address do you want to use for sending email notifications? [[email protected]] <Press Enter>
Do you want search engines to index your site? (y/n) [y] y
Do you want to store the configuration in the database (allows controlling it from admin-fe)? (y/n) [n] n
What is the hostname of your database? [localhost] localhost
What is the name of your database? [pleroma] pleroma
What is the user used to connect to your database? [pleroma] pleroma
What is the password used to connect to your database? [autogenerated] yourpassword
Would you like to use RUM indices? [n] n
What port will the app listen to (leave it if you are using the default setup with nginx)? [4000] <Press Enter>
What ip will the app listen to (leave it if you are using the default setup with nginx)? [127.0.0.1] <Press Enter>
What directory should media uploads go in (when using the local uploader)? [/var/lib/pleroma/uploads] <Press Enter>
What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)? [/var/lib/pleroma/static] <Press Enter>
Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as not installed, please install it if you answer yes. (y/n) [n] n
Do you want to anonymize the filenames of uploads? (y/n) [n] n
Do you want to deduplicate uploaded files? (y/n) [n] y
Writing config to /etc/pleroma/config.exs.
Writing the postgres script to /tmp/setup_db.psql.
Writing /var/lib/pleroma/static/robots.txt.

 All files successfully written! Refer to the installation instructions for your platform for next steps.

Anda dapat memilih serangkaian opsi yang berbeda tergantung pada kebutuhan Anda. Pilih kata sandi yang kuat untuk database Anda. Jika Anda ingin mengonfigurasi instans Anda dari Panel Administrasi, pilih y untuk pertanyaan tentang menyimpan konfigurasi dalam database.

Beralih ke pengguna PostgreSQL default yang dibuat saat PostgreSQL diinstal.

$ exit
$ su postgres -s /bin/bash -l

Buat database menggunakan file SQL yang disediakan oleh Pleroma.

$ psql -f /tmp/setup_db.psql

Beralih kembali ke pengguna Pleroma.

$ exit
$ su pleroma -s /bin/bash -l

Inisialisasi database yang baru saja kita buat.

$ ./bin/pleroma_ctl migrate

Keluar ke pengguna Root.

$ exit

Langkah 6 - Instal SSL menggunakan Let's Encrypt

Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu mengunduh alat Certbot.

Untuk menginstal Certbot, kami akan menggunakan penginstal paket Snapd. Repositori resmi Certbot tidak digunakan lagi dan paket Certbot Ubuntu sudah berusia lebih dari satu tahun. Snapd selalu membawa Certbot versi stabil terbaru dan Anda harus menggunakannya. Untungnya, Ubuntu 20.04 hadir dengan Snapd yang sudah diinstal sebelumnya.

Pastikan versi Snapd Anda terbaru.

$ snap install core 
$ snap refresh core

Hapus Certbot versi lama.

$ apt remove certbot

Instal Certbot.

$ snap install --classic certbot

Gunakan perintah berikut untuk memastikan bahwa perintah Certbot dapat dijalankan dengan membuat tautan simbolis ke /usr/bin direktori.

$ ln -s /snap/bin/certbot /usr/bin/certbot

Hentikan layanan Nginx.

$ systemctl stop nginx

Buat sertifikat SSL.

$ certbot certonly --standalone --preferred-challenges http -d example.com

Perintah di atas akan mengunduh sertifikat ke /etc/letsencrypt/live/example.com direktori di server Anda.

Buat direktori root web tantangan untuk pembaruan otomatis Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbarui jika diperlukan. Untuk itu, buat dulu file /etc/cron.daily/certbot-renew dan buka untuk diedit.

$ nano /etc/cron.daily/certbot-renew

Tempelkan kode berikut.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Ubah izin pada file tugas agar dapat dieksekusi.

$ chmod +x /etc/cron.daily/certbot-renew

Langkah 7 - Konfigurasi Nginx

Pleroma dikirimkan dengan file konfigurasi Nginx default. Instal dengan memindahkannya ke /etc/nginx/sites-available direktori.

$ mv /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf

Ganti semua kemunculan example.tld dengan domain Anda.

$ sed -i 's/example\.tld/example.com/g' /etc/nginx/sites-available/pleroma.conf

Buka file konfigurasi untuk diedit.

$ nano /etc/nginx/sites-available/pleroma.conf

Batalkan komentar location ~ /\.well-known/acme-challenge memblokir. server blok file konfigurasi Anda akan terlihat seperti berikut ini.

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

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Aktifkan konfigurasi Pleroma Nginx dengan membuat symlink.

$ ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf

Aktifkan server Nginx untuk memulainya saat boot.

$ systemctl enable nginx.

Mulai server Nginx.

$ systemctl start nginx

Instal file unit layanan systemd Pleroma yang disediakan dalam distribusi.

$ mv /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Aktifkan dan mulai layanan Pleroma.

$ systemctl enable pleroma
$ systemctl start pleroma

Mungkin diperlukan waktu sekitar 30 detik agar situs Pleroma tersedia. Sekarang, Anda dapat membuka https://example.com di browser web Anda untuk mengunjungi Pleroma. Seharusnya terlihat seperti berikut.

Langkah 8 - Konfigurasikan Pleroma

Buat pengguna Admin

Anda dapat membuat pengguna administratif melalui baris perintah. Beralih ke pengguna Pleroma terlebih dahulu.

$ su pleroma -s /bin/bash -l

Buat pengguna admin. Ganti example dengan nama pengguna Anda, [email protected] dengan alamat email Anda dan password123 dengan kata sandi yang kuat.

$ ./bin/pleroma_ctl user new example [email protected] --password password123 --admin

Beralih kembali ke pengguna root setelah Anda selesai.

$ exit

Mengubah Pengaturan

Jika Anda memilih tidak sebagai jawaban untuk menyimpan konfigurasi di database , itu berarti Anda tidak dapat mengubah pengaturan dari panel Administrasi Pleroma. Untuk mengubah pengaturan, Anda perlu mengubah /etc/pleroma/config.exs berkas.

$ nano /etc/pleroma/config.exs

Setelah Anda selesai mengedit file, Anda juga perlu me-restart layanan Pleroma. Anda mungkin perlu menunggu beberapa saat sebelum layanan dilanjutkan.

$ systemctl restart pleroma

Memperbarui Pleroma

Untuk memperbarui Pleroma, langkah pertama adalah mengunduh rilis baru. Jalankan perintah berikut untuk mengunduh rilis baru Pleroma.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"

Hentikan contoh Pleroma.

$ systemctl stop pleroma

Langkah selanjutnya adalah memigrasikan database.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Mulai instance Pleroma.

$ systemctl start pleroma

Mencadangkan Pleroma

Hentikan layanan Pleroma.

$ systemctl stop pleroma

Beralih ke direktori Pleroma.

$ cd /opt/pleroma

Jalankan perintah berikut untuk membuat cadangan database.

$ sudo -Hu postgres pg_dump -d <pleroma_db> --format=custom -f </path/to/backup_location/pleroma.pgdump>

Salin file pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql dan uploads folder ke tujuan pencadangan Anda.

Mulai layanan Pleroma lagi.

$ systemctl start pleroma

Memulihkan Pleroma

Untuk memulihkan Pleroma, Anda perlu menginstal ulang Pleroma dan memastikan layanan Pleroma tidak berfungsi.

Kemudian salin file yang dicadangkan kembali ke lokasi aslinya.

Jatuhkan database dan pengguna yang ada menggunakan perintah berikut.

$ sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;'

Kembalikan skema database dan peran Pleroma Postgres dengan setup_db.sql yang dicadangkan berkas.

$ sudo -Hu postgres psql -f config/setup_db.psql

Selanjutnya, pulihkan data instance Pleroma.

$ sudo -Hu postgres pg_restore -d <pleroma_db> -v -1 </path/to/backup_location/pleroma.pgdump>

Migrasikan database jika masih ada migrasi yang harus dilakukan jika Anda pindah ke versi yang lebih baru.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Mulai ulang layanan Pleroma.

$ systemctl restart pleroma

Hasilkan statistik sehingga Postgres dapat merencanakan kueri dengan benar.

$ sudo -Hu postgres vacuumdb --all --analyze-in-stages

Kesimpulan

Ini menyimpulkan tutorial kami tentang menginstal Platform Jaringan Sosial Pleroma pada server yang didukung oleh Ubuntu 20.04. Jika Anda memiliki pertanyaan atau umpan balik, kirimkan di komentar di bawah.


Ubuntu
  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Apache di Ubuntu 18.04

  3. Cara Menginstal MariaDB 10.4 di Ubuntu 18.04

  1. Cara Menginstal MongoDB di Ubuntu 18.04

  2. Cara Menginstal Jenkins di Ubuntu 18.04

  3. Cara Menginstal ClickHouse di Ubuntu 20.04

  1. Cara Menginstal KVM di Ubuntu 20.04

  2. Cara Menginstal Webmin di Ubuntu

  3. Cara Menginstal Wayang di Ubuntu 20.04