GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar la plataforma de redes sociales Pleroma en Ubuntu 20.04

Pleroma es una plataforma de redes sociales federadas de código abierto, compatible con Mastodon y otras plataformas de ActivityPub. Forma parte de Fediverse, una red federada de instancias que pueden comunicarse mediante un protocolo común. Una sola cuenta en una instancia puede comunicarse con toda la red Fediverse.

Esta guía le mostrará cómo crear su propia instancia de Pleroma instalándola en un servidor basado en Ubuntu 20.04.

Requisitos

  • Un servidor con Ubuntu 20.04.

  • Un usuario sudo no root.

  • Asegúrate de que todo esté actualizado.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Pocos paquetes y dependencias que necesitas antes de instalar Pleroma.

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

Paso 1:configurar el cortafuegos

El primer paso es configurar el cortafuegos. Ubuntu viene con ufw (cortafuegos sin complicaciones) de forma predeterminada.

Compruebe si el cortafuegos se está ejecutando.

$ sudo ufw status

Deberías obtener el siguiente resultado.

Status: inactive

Permita el puerto SSH para que el cortafuegos no interrumpa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Permitir puertos HTTP y HTTPS también.

$ sudo ufw allow 80
$ sudo ufw allow 443

Habilitar el cortafuegos

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

Vuelva a comprobar el estado del cortafuegos.

$ sudo ufw status

Debería ver un resultado similar.

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)

Paso 2:instalar PostgreSQL

Agregue el repositorio oficial de PostgreSQL a la lista de fuentes de 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'

Agregue la clave GPG del repositorio.

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

Actualice la lista de paquetes del sistema.

$ sudo apt update

Paso 3:instalar Nginx

Ubuntu 20.04 viene con la versión estable de Nginx 18 de forma predeterminada.

$ sudo apt install nginx

Paso 4 - Instalar Pleroma

Esta guía instala Pleroma desde una versión OTP. El primer paso es crear un usuario de Pleroma sin capacidades de inicio de sesión. También creará el directorio de inicio para él en /opt/pleroma .

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

Cambie al usuario de Pleroma. Pero primero, necesitamos cambiar al usuario root.

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

Descargue Pleroma a una ubicación temporal.

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

Descomprima el archivo.

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

Instale Pleroma.

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

Elimina los archivos temporales.

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

Cambie al usuario root.

$ exit

Cree directorios para las cargas y los archivos públicos.

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

Cree el directorio para la configuración de Pleroma.

$ mkdir -p /etc/pleroma

Cambie la propiedad de los directorios de Pleroma al usuario de Pleroma.

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

Paso 5:configurar Pleroma

Vuelva al usuario de Pleroma.

$ su pleroma -s /bin/bash -l

Ejecute el siguiente comando para generar el archivo de configuración para la instancia de Pleroma.

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

Se le harán varias preguntas sobre la configuración de Pleroma. Si recibe una advertencia que indica que no se pudo encontrar el archivo de configuración, ignórelo.

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

Puede elegir un conjunto diferente de opciones según sus requisitos. Elija una contraseña segura para su base de datos. Si desea configurar su instancia desde el Panel de administración, seleccione y para la pregunta sobre el almacenamiento de la configuración en la base de datos.

Cambie al usuario de PostgreSQL predeterminado que se creó cuando se instaló PostgreSQL.

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

Cree la base de datos utilizando el archivo SQL proporcionado por Pleroma.

$ psql -f /tmp/setup_db.psql

Vuelva al usuario de Pleroma.

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

Inicialice la base de datos que acabamos de crear.

$ ./bin/pleroma_ctl migrate

Salga al usuario raíz.

$ exit

Paso 6:instale SSL con Let's Encrypt

Para instalar un certificado SSL usando Let's Encrypt, necesitamos descargar la herramienta Certbot.

Para instalar Certbot, usaremos el instalador del paquete Snapd. El repositorio oficial de Certbot ha quedado obsoleto y el paquete Certbot de Ubuntu tiene más de un año. Snapd siempre lleva la última versión estable de Certbot y debería usarla. Afortunadamente, Ubuntu 20.04 viene con Snapd preinstalado.

Asegúrese de que su versión de Snapd esté actualizada.

$ snap install core 
$ snap refresh core

Elimine cualquier versión anterior de Certbot.

$ apt remove certbot

Instale Certbot.

$ snap install --classic certbot

Use el siguiente comando para asegurarse de que el comando Certbot se pueda ejecutar creando un enlace simbólico al /usr/bin directorio.

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

Detenga el servicio Nginx.

$ systemctl stop nginx

Genere un certificado SSL.

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

El comando anterior descargará un certificado en /etc/letsencrypt/live/example.com directorio en su servidor.

Cree un directorio raíz web de desafío para la renovación automática de Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Cree un trabajo cron para renovar el SSL. Se ejecutará todos los días para verificar el certificado y renovarlo si es necesario. Para eso, primero crea el archivo /etc/cron.daily/certbot-renew y ábralo para editarlo.

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

Pegue el siguiente código.

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

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Cambie los permisos en el archivo de tareas para que sea ejecutable.

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

Paso 7:configurar Nginx

Pleroma se envía con un archivo de configuración predeterminado de Nginx. Instálelo moviéndolo a /etc/nginx/sites-available directorio.

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

Reemplace todas las apariciones de example.tld con tu dominio.

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

Abra el archivo de configuración para editarlo.

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

Descomente la location ~ /\.well-known/acme-challenge cuadra. El server bloque de su archivo de configuración debe tener el siguiente aspecto.

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

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Habilite la configuración de Pleroma Nginx creando un enlace simbólico.

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

Habilite el servidor Nginx para iniciarlo en el momento del arranque.

$ systemctl enable nginx.

Inicie el servidor Nginx.

$ systemctl start nginx

Instale el archivo de la unidad de servicio Pleroma systemd proporcionado en la distribución.

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

Habilite e inicie el servicio Pleroma.

$ systemctl enable pleroma
$ systemctl start pleroma

El sitio de Pleroma puede tardar unos 30 segundos en estar disponible. Ahora, puede abrir https://example.com en su navegador web para visitar Pleroma. Debería tener el siguiente aspecto.

Paso 8:configurar Pleroma

Crear un usuario administrador

Puede crear un usuario administrativo a través de la línea de comando. Cambie primero al usuario de Pleroma.

$ su pleroma -s /bin/bash -l

Cree un usuario administrador. Reemplazar example con tu nombre de usuario, [email protected] con tu dirección de correo electrónico y password123 con una contraseña segura.

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

Vuelva al usuario raíz una vez que haya terminado.

$ exit

Cambio de configuración

Si seleccionó no como respuesta para almacenar la configuración en la base de datos , eso significa que no puede cambiar la configuración desde el panel de administración de Pleroma. Para cambiar la configuración, deberá modificar el /etc/pleroma/config.exs archivo.

$ nano /etc/pleroma/config.exs

Una vez que haya terminado de editar el archivo, también deberá reiniciar el servicio Pleroma. Es posible que deba esperar un tiempo antes de que se reanude el servicio.

$ systemctl restart pleroma

Actualizando Pleroma

Para actualizar Pleroma, el primer paso es descargar la nueva versión. Ejecute el siguiente comando para descargar la nueva versión de Pleroma.

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

Detenga la instancia de Pleroma.

$ systemctl stop pleroma

El siguiente paso es migrar la base de datos.

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

Inicie la instancia de Pleroma.

$ systemctl start pleroma

Copia de seguridad de Pleroma

Detenga el servicio Pleroma.

$ systemctl stop pleroma

Cambia al directorio de Pleroma.

$ cd /opt/pleroma

Ejecute el siguiente comando para hacer una copia de seguridad de la base de datos.

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

Copie los archivos pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql y las uploads carpeta a su destino de copia de seguridad.

Vuelva a iniciar el servicio Pleroma.

$ systemctl start pleroma

Restauración de Pleroma

Para restaurar Pleroma, debe reinstalar Pleroma y asegurarse de que el servicio de Pleroma no esté funcionando.

Luego copie los archivos respaldados nuevamente a su ubicación original.

Descarte la base de datos existente y el usuario usando el siguiente comando.

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

Restaure el esquema de la base de datos y el rol de Pleroma Postgres con el setup_db.sql respaldado archivo.

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

A continuación, restaure los datos de la instancia de Pleroma.

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

Migre la base de datos si quedan migraciones por realizar en caso de que cambie a una versión más nueva.

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

Reinicie el servicio Pleroma.

$ systemctl restart pleroma

Genere las estadísticas para que Postgres pueda planificar adecuadamente las consultas.

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

Conclusión

Esto concluye nuestro tutorial sobre cómo instalar Pleroma Social Network Platform en un servidor con Ubuntu 20.04. Si tiene alguna pregunta o comentario, publíquelo en los comentarios a continuación.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 18.04

  2. Cómo instalar Apache en Ubuntu 18.04

  3. Cómo instalar MariaDB 10.4 en Ubuntu 18.04

  4. Cómo instalar MongoDB en Ubuntu 18.04

  5. Cómo instalar Jenkins en Ubuntu 18.04

Cómo instalar Tomcat 8.5 en Ubuntu 18.04

Cómo instalar Asterisk en Ubuntu 18.04

Cómo instalar la red social Elgg en Ubuntu 18.04 LTS

Cómo instalar Mastodon Social Network con Docker en Ubuntu 18.04 LTS

Cómo instalar la plataforma de red social Friendica en Ubuntu 20.04

Cómo instalar una red social de código abierto en Ubuntu 16.04