Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Come Installare il Pleroma della Piattaforma di Social Network su Ubuntu 20.04

Pleroma è un open-source federato piattaforma di social networking, compatibile con i Mastodon e altri ActivityPub piattaforme. Si tratta di una parte del Fediverse, una rete federata di istanze che possono comunicare utilizzando un protocollo comune. Un singolo account su un’istanza può parlare di tutto Fediverse rete.

Questa guida vi mostrerà come creare il vostro proprio Pleroma esempio mediante l’installazione su Ubuntu 20.04 basata su server.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Non root sudo utente.
  • Assicurarsi che tutto è aggiornato.
    $ sudo apt update
    $ sudo apt upgrade
    
  • Pochi i pacchetti e le dipendenze che è necessario prima di installare il Pleroma.
    $ sudo apt install wget curl gnupg2 ca-certificates lsb-release gnupg zip libncurses5 libmagic-dev -y
    

Passo 1 – Configurazione Firewall

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

Controllare se il firewall è in esecuzione.

$ sudo ufw status

Si dovrebbe ottenere il seguente output.

Status: inactive

Consentire porta di SSH in modo che il firewall non rompere la connessione corrente abilitarlo.

$ sudo ufw allow OpenSSH

Permettere porte HTTP e HTTPS così.

$ sudo ufw allow 80
$ sudo ufw allow 443

Attivare 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

Controllare lo stato del firewall di nuovo.

$ sudo ufw status

Si dovrebbe vedere una simile uscita.

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)

Fase 2 – Installazione Di PostgreSQL

Aggiungere l’ufficiale di PostgreSQL repository di Ubuntu lista delle fonti.

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

Aggiungere il repository chiave GPG.

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

Aggiornare il sistema elenco dei pacchetti.

$ sudo apt update

Fase 3 – Installare Nginx

Ubuntu 20.04 navi con Nginx 18 versione stabile di default.

$ sudo apt install nginx

Passo 4 – Installare Il Pleroma

Questa guida consente di installare Pleroma da un OTP di rilascio. Il primo passo è quello di creare un Pleroma utente senza effettuare il login funzionalità. Sarà, inoltre, creare la directory home per farlo /opt/pleroma.

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

Passare al Pleroma utente. Ma in primo luogo, abbiamo bisogno di passare per l’utente root.

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

Scarica il 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

Decomprimere l’archivio.

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

Installare Pleroma.

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

Eliminare i file temporanei.

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

Interruttore per l’utente root.

$ exit

Creare la directory per l’upload e file di pubblico.

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

Creare la directory per il Pleroma di configurazione.

$ mkdir -p /etc/pleroma

Modificare la proprietà di Pleroma di directory per il Pleroma utente.

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

Passo 5 – Configurazione Pleroma

Tornare al Pleroma utente.

$ su pleroma -s /bin/bash -l

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

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

Vi verrà chiesto alcune domande sull’impostazione del Pleroma. Se si ottiene un messaggio di avviso indicante che il file di configurazione non può essere trovato, ignorarlo.

pleroma@pleroma:~$ ./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? [] yourmail@example.com
What email address do you want to use for sending email notifications? [yourmail@example.com] <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.

È possibile scegliere un diverso insieme di opzioni, a seconda del vostro requisito. Scegliere una password per il database. Se si desidera configurare l’istanza dal Pannello di Amministrazione, seleziona y per la domanda sulla memorizzazione della configurazione del database.

Interruttore per l’impostazione predefinita utente PostgreSQL che è stato creato quando PostgreSQL è stato installato.

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

Creare il database utilizzando SQL file fornito dal Pleroma.

$ psql -f /tmp/setup_db.psql

Tornare al Pleroma utente.

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

Inizializzare il database appena creato.

$ ./bin/pleroma_ctl migrate

Uscita per l’utente Root.

$ exit

Passo 6 – Installare SSL utilizzando Let’s Encrypt

Per installare un certificato SSL utilizzando Let’s Encrypt, abbiamo bisogno di scaricare il Certbot strumento.

Per installare Certbot, useremo il Snapd programma di installazione del pacchetto. Certbot del repository ufficiale è stato deprecato e Ubuntu Certbot pacchetto è più di un anno di età. Snapd porta sempre l’ultima versione stabile di Certbot e si dovrebbe utilizzare che. Fortunatamente, Ubuntu 20.04 viene fornito con Snapd pre-installato.

Assicurare che la vostra versione di Snapd è aggiornato.

$ snap install core 
$ snap refresh core

Rimuovere eventuali vecchie versioni di Certbot.

$ apt remove certbot

Installare Certbot.

$ snap install --classic certbot

Utilizzare il seguente comando per verificare che il Certbot comando può essere eseguito mediante la creazione di un link simbolico alla /usr/bin directory.

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

Interrompere il Nginx servizio.

$ systemctl stop nginx

Generare un certificato SSL.

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

Il comando di cui sopra per scaricare un certificato per la /etc/letsencrypt/live/example.com directory sul server.

Crea una sfida cartella radice del web per Let’s Encrypt rinnovo automatico.

$ mkdir -p /var/lib/letsencrypt

Creare un Cron Job per rinnovare il protocollo SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovare se necessario. Per questo, prima di tutto, creare il file /etc/cron.daily/certbot-renew e aprirlo per la modifica.

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

Incollare il codice riportato di seguito.

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

Salvare il file premendo Ctrl + X e l’immissione di Y quando richiesto.

Modificare le autorizzazioni per l’attività di file per renderlo eseguibile.

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

Passo 7 – Configurazione Di Nginx

Pleroma di navi con un default file di configurazione di Nginx. Installare spostandola alla /etc/nginx/sites-available directory.

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

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

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

Aprire il file di configurazione per la modifica.

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

Il commento il location ~ /\.well-known/acme-challenge blocco. Il server blocco del vostro 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;
    }
}

Salvare il file premendo Ctrl + X e l’immissione di Y quando richiesto.

Attivare il Pleroma di configurazione di Nginx con la creazione di un link simbolico.

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

Attivare il Nginx server per avviare all’avvio).

$ systemctl enable nginx.

Avviare il Nginx server.

$ systemctl start nginx

Installare il Pleroma di systemd unità di servizio del file fornito con la distribuzione.

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

Attivare e avviare il Pleroma di servizio.

$ systemctl enable pleroma
$ systemctl start pleroma

Ci vogliono circa 30 secondi per il Pleroma sito per diventare disponibili. Ora, è possibile aprire https://example.com nel browser web per visitare il Pleroma. Dovrebbe apparire come il seguente.

Pleroma Home Page

Passo 8 – Configurazione Pleroma

Creare un utente Amministratore

È possibile creare un utente amministrativo attraverso la linea di comando. Passare al Pleroma utente prima.

$ su pleroma -s /bin/bash -l

Creare un utente amministratore. Sostituire example con il tuo nome utente yourmail@example.com il tuo indirizzo email e password123 una password complessa.

$ ./bin/pleroma_ctl user new example your.email@example.com --password password123 --admin

Torna a utente root una volta che avete finito.

$ exit

Modifica Delle Impostazioni

Se si seleziona ” no ” come risposta per la memorizzazione di configurazione del database, il che significa che non è possibile modificare le impostazioni dal pannello di Amministrazione del Pleroma. Per modificare le impostazioni, è necessario modificare il /etc/pleroma/config.exs file.

$ nano /etc/pleroma/config.exs

Una volta che hai finito di editare il file, sarà necessario riavviare il Pleroma di servizio. Potrebbe essere necessario attendere un po ‘ di tempo prima che il servizio è ripreso.

$ systemctl restart pleroma

Aggiornamento Pleroma

Per l’aggiornamento del Pleroma, il primo passo è quello di scaricare la nuova versione. Eseguire il comando seguente per scaricare la nuova release del Pleroma.

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

Interrompere Pleroma istanza.

$ systemctl stop pleroma

Il passo successivo è quello di eseguire la migrazione del database.

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

Avviare il Pleroma istanza.

$ systemctl start pleroma

Il backup Pleroma

Interrompere il Pleroma di servizio.

$ systemctl stop pleroma

Interruttore per il Pleroma della directory.

$ cd /opt/pleroma

Eseguire 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>

Copiare il file pleroma.pgdumpconfig/prod.secret.exsconfig/setup_db.sql e la uploads cartella di destinazione del backup.

Avviare il Pleroma di servizio.

$ systemctl start pleroma

Il Ripristino Pleroma

Per ripristinare il Pleroma, è necessario reinstallare il Pleroma, e assicurarsi che il Pleroma servizio non funziona.

Quindi copiare i file di backup di nuovo alla loro posizione originale.

Rilasciare il database esistente di utente e utilizzando il comando riportato di seguito.

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

Ripristinare lo schema del database e Pleroma Postgres ruolo con la copia di backup del setup_db.sqlSuccessivamente, ripristinare il Pleroma dati dell’istanza.

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

Eseguire la migrazione del database se ci sono eventuali migrazioni di sinistra per essere eseguita nel caso in cui si stanno muovendo per una versione più recente.

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

Riavviare il Pleroma di servizio.

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

Riavviare il Pleroma di servizio.

$ systemctl restart pleroma

Generare le statistiche in modo che Postgres grado di programmare correttamente la query.

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

Conclusione

Questo conclude il nostro tutorial su come installare il Pleroma della Piattaforma di Social Network su un server powered by Ubuntu 20.04. Se avete domande o commenti, postare commenti qui sotto.

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp