GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat platformu sociální sítě Pleroma na Ubuntu 20.04

Pleroma je open-source federovaná platforma sociálních sítí, kompatibilní s Mastodon a dalšími platformami ActivityPub. Je součástí Fediverse, federované sítě instancí, které mohou komunikovat pomocí společného protokolu. Jeden jediný účet v jedné instanci může komunikovat s celou sítí Fediverse.

Tato příručka vám ukáže, jak vytvořit vlastní instanci Pleroma její instalací na server založený na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.

  • Uživatel sudo bez oprávnění root.

  • Ujistěte se, že je vše aktualizováno.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Několik balíčků a závislostí, které potřebujete před instalací Pleroma.

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

Krok 1 – Konfigurace brány firewall

Prvním krokem je konfigurace firewallu. Ubuntu je standardně dodáváno s ufw (Uncomplicated Firewall).

Zkontrolujte, zda je spuštěna brána firewall.

$ sudo ufw status

Měli byste získat následující výstup.

Status: inactive

Povolte port SSH, aby firewall při jeho povolení nepřerušil aktuální připojení.

$ sudo ufw allow OpenSSH

Povolit také porty HTTP a HTTPS.

$ sudo ufw allow 80
$ sudo ufw allow 443

Povolte bránu firewall

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

Znovu zkontrolujte stav brány firewall.

$ sudo ufw status

Měli byste vidět podobný výstup.

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)

Krok 2 – Instalace PostgreSQL

Přidejte oficiální úložiště PostgreSQL do seznamu zdrojů 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'

Přidejte klíč GPG úložiště.

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

Aktualizujte seznam systémových balíčků.

$ sudo apt update

Krok 3 – Instalace Nginx

Ubuntu 20.04 se standardně dodává se stabilní verzí Nginx 18.

$ sudo apt install nginx

Krok 4 – Instalace Pleroma

Tato příručka nainstaluje Pleroma z vydání OTP. Prvním krokem je vytvoření uživatele Pleroma bez možnosti přihlášení. Také pro něj vytvoří domovský adresář /opt/pleroma .

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

Přepněte na uživatele Pleroma. Nejprve se však musíme přepnout na uživatele root.

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

Stáhněte si Pleroma do dočasného umístění.

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

Rozbalte archiv.

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

Nainstalujte Pleroma.

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

Smažte dočasné soubory.

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

Přepněte na uživatele root.

$ exit

Vytvořte adresáře pro nahrávání a veřejné soubory.

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

Vytvořte adresář pro konfiguraci Pleroma.

$ mkdir -p /etc/pleroma

Změňte vlastnictví adresářů Pleroma na uživatele Pleroma.

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

Krok 5 – Konfigurace Pleroma

Přepněte zpět na uživatele Pleroma.

$ su pleroma -s /bin/bash -l

Spuštěním následujícího příkazu vygenerujte konfigurační soubor pro instanci Pleroma.

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

Budete dotázáni na několik otázek ohledně nastavení Pleroma. Pokud se zobrazí varování, že konfigurační soubor nebyl nalezen, ignorujte ho.

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

V závislosti na vašich požadavcích si můžete vybrat jinou sadu možností. Zvolte silné heslo pro vaši databázi. Pokud chcete konfigurovat svou instanci z Administračního panelu, vyberte y na otázku o uložení konfigurace do databáze.

Přepněte na výchozího uživatele PostgreSQL, který byl vytvořen při instalaci PostgreSQL.

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

Vytvořte databázi pomocí souboru SQL poskytnutého společností Pleroma.

$ psql -f /tmp/setup_db.psql

Přepněte zpět na uživatele Pleroma.

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

Inicializujte databázi, kterou jsme právě vytvořili.

$ ./bin/pleroma_ctl migrate

Přejděte na uživatele root.

$ exit

Krok 6 – Instalace SSL pomocí Let's Encrypt

Chcete-li nainstalovat certifikát SSL pomocí Let's Encrypt, musíme si stáhnout nástroj Certbot.

K instalaci Certbotu použijeme instalační program balíčku Snapd. Oficiální úložiště Certbotu bylo zastaralé a balíček Certbot Ubuntu je více než rok starý. Snapd vždy obsahuje nejnovější stabilní verzi Certbota a měli byste ji používat. Naštěstí je Ubuntu 20.04 dodáván s předinstalovaným Snapdem.

Ujistěte se, že vaše verze Snapd je aktuální.

$ snap install core 
$ snap refresh core

Odstraňte všechny staré verze Certbotu.

$ apt remove certbot

Nainstalujte Certbot.

$ snap install --classic certbot

Pomocí následujícího příkazu zajistěte, aby bylo možné spustit příkaz Certbot vytvořením symbolického odkazu na /usr/bin adresář.

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

Zastavte službu Nginx.

$ systemctl stop nginx

Vygenerujte certifikát SSL.

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

Výše uvedený příkaz stáhne certifikát do /etc/letsencrypt/live/example.com adresář na vašem serveru.

Vytvořte webový kořenový adresář výzvy pro automatické obnovení Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Vytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby se obnoví. Nejprve vytvořte soubor /etc/cron.daily/certbot-renew a otevřete jej pro úpravy.

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

Vložte následující kód.

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

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Změňte oprávnění k souboru úlohy, aby byl spustitelný.

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

Krok 7 – Konfigurace Nginx

Pleroma se dodává s výchozím konfiguračním souborem Nginx. Nainstalujte jej přesunutím do /etc/nginx/sites-available adresář.

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

Nahraďte všechny výskyty example.tld s vaší doménou.

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

Otevřete konfigurační soubor pro úpravy.

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

Odkomentujte location ~ /\.well-known/acme-challenge blok. server blok vašeho konfiguračního souboru by měl vypadat následovně.

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

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Povolte konfiguraci Pleroma Nginx vytvořením symbolického odkazu.

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

Povolte serveru Nginx, aby jej spustil při spouštění.

$ systemctl enable nginx.

Spusťte server Nginx.

$ systemctl start nginx

Nainstalujte soubor servisní jednotky Pleroma systemd poskytnutý v distribuci.

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

Povolte a spusťte službu Pleroma.

$ systemctl enable pleroma
$ systemctl start pleroma

Zpřístupnění webu Pleroma může trvat přibližně 30 sekund. Nyní můžete otevřít https://example.com ve vašem webovém prohlížeči navštívit Pleroma. Mělo by to vypadat následovně.

Krok 8 – Konfigurace Pleroma

Vytvořit uživatele s oprávněním správce

Administrativního uživatele můžete vytvořit pomocí příkazového řádku. Nejprve přepněte na uživatele Pleroma.

$ su pleroma -s /bin/bash -l

Vytvořte administrátora. Nahraďte example s vaším uživatelským jménem, ​​[email protected] s vaší e-mailovou adresou a password123 se silným heslem.

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

Po dokončení se přepněte zpět na uživatele root.

$ exit

Změna nastavení

Pokud jste jako odpověď pro uložení konfigurace do databáze vybrali ne , to znamená, že nemůžete změnit nastavení z panelu Administrace Pleroma. Chcete-li změnit nastavení, budete muset upravit /etc/pleroma/config.exs soubor.

$ nano /etc/pleroma/config.exs

Po dokončení úprav souboru budete také muset restartovat službu Pleroma. Možná budete muset nějakou dobu počkat, než bude služba obnovena.

$ systemctl restart pleroma

Aktualizace Pleroma

Pro aktualizaci Pleroma je prvním krokem stažení nové verze. Spusťte následující příkaz a stáhněte si nové vydání Pleroma.

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

Zastavte instanci Pleroma.

$ systemctl stop pleroma

Dalším krokem je migrace databáze.

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

Spusťte instanci Pleroma.

$ systemctl start pleroma

Zálohování Pleroma

Zastavte službu Pleroma.

$ systemctl stop pleroma

Přepněte se do adresáře Pleroma.

$ cd /opt/pleroma

Spusťte následující příkaz pro zálohování databáze.

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

Zkopírujte soubory pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql a uploads složky do cílového umístění zálohy.

Znovu spusťte službu Pleroma.

$ systemctl start pleroma

Obnovení Pleroma

Chcete-li obnovit Pleroma, musíte znovu nainstalovat Pleroma a ujistit se, že služba Pleroma nefunguje.

Poté zkopírujte zálohované soubory zpět do jejich původního umístění.

Zrušte existující databázi a uživatele pomocí následujícího příkazu.

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

Obnovte schéma databáze a roli Pleroma Postgres pomocí zálohovaného souboru setup_db.sql soubor.

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

Dále obnovte data instance Pleroma.

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

Proveďte migraci databáze, pokud zbývá provést nějaké migrace pro případ, že přecházíte na novější verzi.

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

Restartujte službu Pleroma.

$ systemctl restart pleroma

Vygenerujte statistiky, aby mohl Postgres správně naplánovat dotazy.

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

Závěr

Tímto končí náš návod k instalaci platformy Pleroma Social Network Platform na server využívající Ubuntu 20.04. Pokud máte nějaké dotazy nebo zpětnou vazbu, napište je do komentářů níže.


Ubuntu
  1. Jak nainstalovat Docker na Ubuntu 18.04

  2. Jak nainstalovat Apache na Ubuntu 18.04

  3. Jak nainstalovat MariaDB 10.4 na Ubuntu 18.04

  1. Jak nainstalovat MongoDB na Ubuntu 18.04

  2. Jak nainstalovat Jenkins na Ubuntu 18.04

  3. Jak nainstalovat ClickHouse na Ubuntu 20.04

  1. Jak nainstalovat KVM na Ubuntu 20.04

  2. Jak nainstalovat Webmin na Ubuntu

  3. Jak nainstalovat Puppet na Ubuntu 20.04