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.