GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare la piattaforma di social network Pleroma su Ubuntu 20.04

Pleroma è una piattaforma di social networking federata open source, compatibile con Mastodon e altre piattaforme ActivityPub. Fa parte di Fediverse, una rete federata di istanze in grado di comunicare utilizzando un protocollo comune. Un singolo account su un'istanza può comunicare con l'intera rete Fediverse.

Questa guida ti mostrerà come creare la tua istanza Pleroma installandola su un server basato su Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.

  • Un utente sudo non root.

  • Assicurati che tutto sia aggiornato.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Pochi pacchetti e dipendenze di cui hai bisogno prima di installare Pleroma.

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

Passaggio 1:configurazione del firewall

Il primo passo è configurare il firewall. Ubuntu viene fornito con ufw (Uncomplicated Firewall) per impostazione predefinita.

Controlla se il firewall è in esecuzione.

$ sudo ufw status

Dovresti ottenere il seguente output.

Status: inactive

Consenti porta SSH in modo che il firewall non interrompa la connessione corrente quando lo si abilita.

$ sudo ufw allow OpenSSH

Consenti anche le porte HTTP e HTTPS.

$ sudo ufw allow 80
$ sudo ufw allow 443

Abilita il Firewall

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

Ricontrolla lo stato del firewall.

$ sudo ufw status

Dovresti vedere un output simile.

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)

Passaggio 2 - Installa PostgreSQL

Aggiungi il repository PostgreSQL ufficiale all'elenco delle fonti di 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'

Aggiungi la chiave GPG del repository.

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

Aggiorna l'elenco dei pacchetti di sistema.

$ sudo apt update

Passaggio 3:installa Nginx

Ubuntu 20.04 viene fornito con la versione stabile di Nginx 18 per impostazione predefinita.

$ sudo apt install nginx

Fase 4 - Installa Pleroma

Questa guida installa Pleroma da una versione OTP. Il primo passo è creare un utente Pleroma senza capacità di accesso. Creerà anche la directory home in /opt/pleroma .

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

Passa all'utente Pleroma. Ma prima, dobbiamo passare all'utente root.

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

Scarica Pleroma in una posizione temporanea.

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

Decomprimi l'archivio.

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

Installa Pleroma.

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

Elimina i file temporanei.

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

Passa all'utente root.

$ exit

Crea directory per i caricamenti e i file pubblici.

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

Crea la directory per la configurazione di Pleroma.

$ mkdir -p /etc/pleroma

Cambia la proprietà delle directory Pleroma all'utente Pleroma.

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

Passaggio 5 - Configura Pleroma

Torna all'utente Pleroma.

$ su pleroma -s /bin/bash -l

Eseguire il comando seguente per generare il file di configurazione per l'istanza Pleroma.

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

Ti verranno poste diverse domande sulla configurazione di Pleroma. Se ricevi un avviso che indica che non è stato possibile trovare il file di configurazione, ignoralo.

[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.

Puoi scegliere un diverso insieme di opzioni a seconda delle tue esigenze. Scegli una password complessa per il tuo database. Se desideri configurare la tua istanza dal Pannello di amministrazione, seleziona y per la domanda sulla memorizzazione della configurazione nel database.

Passa all'utente PostgreSQL predefinito che è stato creato durante l'installazione di PostgreSQL.

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

Crea il database utilizzando il file SQL fornito da Pleroma.

$ psql -f /tmp/setup_db.psql

Torna all'utente Pleroma.

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

Inizializza il database che abbiamo appena creato.

$ ./bin/pleroma_ctl migrate

Esci all'utente root.

$ exit

Passaggio 6:installa SSL utilizzando Let's Encrypt

Per installare un certificato SSL utilizzando Let's Encrypt, dobbiamo scaricare lo strumento Certbot.

Per installare Certbot, utilizzeremo il programma di installazione del pacchetto Snapd. Il repository ufficiale di Certbot è stato deprecato e il pacchetto Certbot di Ubuntu ha più di un anno. Snapd trasporta sempre l'ultima versione stabile di Certbot e dovresti usarla. Fortunatamente, Ubuntu 20.04 viene fornito con Snapd preinstallato.

Assicurati che la tua versione di Snapd sia aggiornata.

$ snap install core 
$ snap refresh core

Rimuovi tutte le vecchie versioni di Certbot.

$ apt remove certbot

Installa Certbot.

$ snap install --classic certbot

Utilizzare il comando seguente per assicurarsi che il comando Certbot possa essere eseguito creando un collegamento simbolico al /usr/bin directory.

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

Arresta il servizio Nginx.

$ systemctl stop nginx

Genera un certificato SSL.

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

Il comando precedente scaricherà un certificato in /etc/letsencrypt/live/example.com directory sul tuo server.

Crea una directory radice web di sfida per il rinnovo automatico di Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Crea un Cron Job per rinnovare l'SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovarlo se necessario. Per questo, prima crea il file /etc/cron.daily/certbot-renew e aprilo per la modifica.

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

Incolla il seguente codice.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Modifica le autorizzazioni sul file dell'attività per renderlo eseguibile.

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

Passaggio 7 - Configura Nginx

Pleroma viene fornito con un file di configurazione Nginx predefinito. Installalo spostandolo in /etc/nginx/sites-available directory.

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

Sostituisci tutte le occorrenze di example.tld con il tuo dominio.

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

Apri il file di configurazione per la modifica.

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

Decommenta la location ~ /\.well-known/acme-challenge bloccare. Il server il blocco del tuo file di configurazione dovrebbe essere simile al seguente.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Abilita la configurazione di Pleroma Nginx creando un collegamento simbolico.

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

Abilita il server Nginx per avviarlo all'avvio.

$ systemctl enable nginx.

Avvia il server Nginx.

$ systemctl start nginx

Installa il file dell'unità di servizio di sistema Pleroma fornito nella distribuzione.

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

Abilita e avvia il servizio Pleroma.

$ systemctl enable pleroma
$ systemctl start pleroma

Potrebbero essere necessari circa 30 secondi prima che il sito Pleroma diventi disponibile. Ora puoi aprire https://example.com nel tuo browser web per visitare Pleroma. Dovrebbe essere simile al seguente.

Passaggio 8 - Configura Pleroma

Crea un utente amministratore

È possibile creare un utente amministrativo tramite la riga di comando. Passa prima all'utente Pleroma.

$ su pleroma -s /bin/bash -l

Crea un utente amministratore. Sostituisci example con il tuo nome utente, [email protected] con il tuo indirizzo email e password123 con una password complessa.

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

Torna all'utente root una volta terminato.

$ exit

Modifica delle impostazioni

Se hai selezionato no come risposta per memorizzare la configurazione nel database , ciò significa che non puoi modificare le impostazioni dal pannello di amministrazione di Pleroma. Per modificare le impostazioni, dovrai modificare il /etc/pleroma/config.exs file.

$ nano /etc/pleroma/config.exs

Una volta terminata la modifica del file, dovrai anche riavviare il servizio Pleroma. Potrebbe essere necessario attendere un po' di tempo prima che il servizio venga ripreso.

$ systemctl restart pleroma

Aggiornamento di Pleroma

Per aggiornare Pleroma, il primo passo è scaricare la nuova versione. Esegui il comando seguente per scaricare la nuova versione di Pleroma.

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

Arresta l'istanza Pleroma.

$ systemctl stop pleroma

Il passaggio successivo consiste nel migrare il database.

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

Avvia l'istanza Pleroma.

$ systemctl start pleroma

Backup di Pleroma

Interrompi il servizio Pleroma.

$ systemctl stop pleroma

Passa alla directory del Pleroma.

$ cd /opt/pleroma

Esegui il comando seguente per eseguire il backup del database.

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

Copia i file pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql e i uploads cartella nella destinazione del backup.

Riavvia il servizio Pleroma.

$ systemctl start pleroma

Ripristino del Pleroma

Per ripristinare Pleroma, devi reinstallare Pleroma e assicurarti che il servizio Pleroma non funzioni.

Quindi copia i file di backup nella loro posizione originale.

Elimina il database e l'utente esistenti utilizzando il comando seguente.

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

Ripristina lo schema del database e il ruolo Pleroma Postgres con il backup di setup_db.sql file.

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

Quindi, ripristina i dati dell'istanza Pleroma.

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

Esegui la migrazione del database se sono rimaste migrazioni da eseguire nel caso in cui stai passando a una versione più recente.

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

Riavvia il servizio Pleroma.

$ systemctl restart pleroma

Genera le statistiche in modo che Postgres possa pianificare correttamente le query.

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

Conclusione

Questo conclude il nostro tutorial sull'installazione della piattaforma Pleroma Social Network su un server basato su Ubuntu 20.04. Se hai domande o feedback, pubblicali nei commenti qui sotto.


Ubuntu
  1. Come installare Docker su Ubuntu 18.04

  2. Come installare Apache su Ubuntu 18.04

  3. Come installare MariaDB 10.4 su Ubuntu 18.04

  4. Come installare MongoDB su Ubuntu 18.04

  5. Come installare Jenkins su Ubuntu 18.04

Come installare Tomcat 8.5 su Ubuntu 18.04

Come installare Asterisk su Ubuntu 18.04

Come installare Elgg Social Network su Ubuntu 18.04 LTS

Come installare Mastodon Social Network con Docker su Ubuntu 18.04 LTS

Come installare la piattaforma di social network Friendica su Ubuntu 20.04

Come installare il social network open source su Ubuntu 16.04