Cómo Instalar Tu Propio Twitter Federado con Pleroma

Pleroma Twitter Featured

Microblogging es una forma maravillosa de expresar tus pensamientos. Es corto, sucinto y dulce. En este sentido, Twitter ha sido una de las plataformas de microblogging más populares del mundo. Sin embargo, depender de esta empresa en particular para tus necesidades de microblogging puede no ser la mejor solución para todos.

Afortunadamente, hay alternativas como Pleroma, que es un Twitter autohospedado. Esta es una plataforma de microblogging federada y ligera. Usar la federación permite que la plataforma se comunique con otras instancias federadas, lo que significa que no necesitas reunir a muchas personas para que tu propio Twitter privado comience a compartir información. Este artículo tiene como objetivo ayudarte a comenzar con Pleroma.

Tabla de Contenidos

  • El Problema con Twitter
  • Qué es la Federación y Cómo Funciona
  • Cómo Instalar Pleroma
    1. Configura tus Registros DNS A y AAAA
    1. Obtén las Dependencias de Pleroma
    1. Crea el Usuario de Pleroma
    1. Descarga Pleroma
    1. Prepara e Instala Pleroma
    1. Configura la Instalación de Pleroma
    1. Configuraciones Específicas de Medios
    1. Finaliza tu Configuración de Pleroma
    1. Inicia la Base de Datos de Pleroma
    1. Inicia tu Servidor Pleroma
    1. Configuraciones Finales
  • Preguntas Frecuentes

También lee: Las 7 Mejores Distribuciones Basadas en Debian para Probar Si Quieres una Alternativa a Ubuntu

El Problema con Twitter

Twitter ha sido conocido por banear cuentas aleatoriamente por infracciones vagas de políticas. Si eres alguien que ha acumulado años de publicaciones en Twitter, perder ese historial puede ser devastador. No solo eso, Twitter también ha sido conocido por entregar datos de usuarios tanto a anunciantes como a agencias gubernamentales.

Esto convierte a Twitter en una plataforma insegura para las personas que desean tener control total sobre sus datos o para periodistas que informan sobre temas controvertidos.

Qué es la Federación y Cómo Funciona

Una solución a este problema es construir una red social a través de la federación de servidores. Este es un sistema donde permites que múltiples servidores que ejecutan software similar se comuniquen entre sí de manera transparente.

Debido a eso, cualquier servidor federado puede actuar como un nodo para toda la red donde puedes acceder y participar con otros servidores.

Pleroma Server 03 Federated Network

A su vez, esto crea un ecosistema resiliente que puede adaptarse fácilmente a cualquier circunstancia. Por ejemplo, si un servidor Pleroma se cae, no terminaría con la red federada de Pleroma. Podría reducir la cantidad de publicaciones dentro de la red, pero otros servidores aún podrán comunicarse entre sí.

También lee: Cómo Instalar Debian a través de Internet

Cómo Instalar Pleroma

Pleroma requiere una serie de cosas antes de que puedas comenzar a configurarlo:

  • Primero, necesitas tener una máquina públicamente descubrible. Esto podría ser una máquina en tu hogar a la que puedes hacer un reenvío de puertos o un VPS que compraste a un proveedor.
  • Además, si estás utilizando un VPS para instalar Pleroma, necesitas tener acceso root a ese VPS. Esto se debe a que estarás instalando paquetes que Pleroma requiere para funcionar correctamente.
  • Por último, necesitas tener un nombre de dominio. Esto se debe a que certbot, la utilidad de certificado SSL, requerirá un nombre de dominio para generar un certificado para tu instancia de Pleroma.

Con eso en mente, esta guía se centrará en instalar Pleroma en un VPS basado en Debian de Digitalocean.

1. Configura tus Registros DNS A y AAAA

Antes de comenzar, es prudente primero vincular tu nombre de dominio a la dirección IP de tu VPS.

Pleroma Server 05 Sample Dns Record

Esto asegura que cualquier comando que haga referencia a tu nombre de dominio a continuación se resolverá correctamente. Como tal, esto se vuelve especialmente útil una vez que configures tus certificados SSL más adelante.

  1. Para vincular tu nombre de dominio a la dirección IP de tu VPS, debes editar el registro DNS de tu nombre de dominio. Aunque puedes usar un servicio de registro de dominios diferente al mío, el proceso de vincular tu nombre de dominio a la dirección de tu VPS es en gran medida el mismo.
  2. En mi caso, vinculé mi nombre de dominio: yetanotherpleromaserver.xyz a mi VPS de Digitalocean a través de Namesilo. Para hacer eso, primero accedí a la ventana del administrador de dominios de Namesilo.

Pleroma Server 06 Domain Manager

  1. Desde aquí, necesitas hacer clic en el nombre de dominio. Esto mostrará la configuración para ese dominio específico.
  2. A continuación, haz clic en el enlace “Registros DNS”. Esto mostrará todos los registros DNS disponibles para tu nombre de dominio.

Pleroma Server 38 Dns Records 2

  1. Una vez hecho esto, añadí un recurso “A” a mi registro DNS haciendo clic en el enlace “A” en el cuadro “Agregar/Editar un Registro de Recursos” en la página de registros de Namesilo.

Pleroma Server 08 Highlight A Record

  1. Desde allí, lo único que necesitaba hacer era agregar la dirección IPv4 de mi VPS de Digitalocean.

Pleroma Server 09 Added A Record

  1. El proceso de agregar un registro “AAAA” también es el mismo. Sin embargo, en lugar de hacer clic en el enlace “A”, haré clic en el enlace “AAAA”. Además, en lugar de agregar la dirección IPv4, agregaré la dirección IPv6.

Pleroma Server 10 Added Aaaa Record

También lee: 5 Mejores Distribuciones Linux-Libre para Mejorar la Seguridad

2. Obtén las Dependencias de Pleroma

Lo siguiente que necesitas hacer es descargar todos los paquetes que Pleroma requiere. Como se discutió anteriormente, solo voy a resaltar el proceso de instalación para distribuciones de Linux basadas en Debian y Ubuntu. Como tal, usaré apt para instalar todos los paquetes requeridos.

Con eso en mente, Pleroma depende de tres programas principales: postgresql, elixir y erlang. Por lo tanto, necesitas instalar estos programas así como un par más que complementarán esos tres en su trabajo.

Para hacer eso, puedes ejecutar el siguiente comando:

sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev elixir erlang-dev erlang-nox nginx certbot

Pleroma Server 11 Installing Packages

3. Crea el Usuario de Pleroma

Con eso hecho, lo siguiente que necesitas hacer es crear la cuenta de usuario “pleroma”. Esta es la cuenta que usarás para descargar e instalar el paquete de Pleroma. Hacerlo de esta manera asegura que el programa Pleroma no tenga acceso de superusuario a tu sistema.

Para hacer esto, puedes ejecutar el siguiente comando:

sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
  • La opción -r establecerá al usuario “pleroma” como una cuenta del sistema en lugar de una cuenta de usuario.
  • Además, la opción -s establecerá el shell de inicio de sesión para este usuario como “false”. Esto asegura que el usuario pleroma, por sí mismo, no pueda ejecutar ningún comando desde un shell.
  • Por otro lado, las banderas -m y -d establecen el directorio home para el usuario “pleroma”. La bandera -m establece explícitamente que la cuenta tendrá un directorio home y la bandera -d establece que ese directorio apunte a “/var/lib/pleroma”.
  • Por último, la bandera -U crea un grupo de usuario con el mismo nombre y agrega al nuevo usuario Pleroma a ese grupo.

Pleroma Server 12 Add Pleroma User

4. Descarga Pleroma

Desde allí, ahora puedes descargar el paquete de Pleroma desde sus repositorios. Para hacer eso, primero debes crear el directorio donde se descargarán los archivos:

sudo mkdir -p /opt/pleroma  
sudo chown -R pleroma:pleroma /opt/pleroma
  • El primer comando creará el directorio “pleroma” donde descargarás todos los archivos para el programa.
  • El segundo comando, por otro lado, transferirá la propiedad de esa carpeta de root a pleroma. Esto permitirá que pleroma lea y escriba en esta carpeta sin problemas.

Pleroma Server 13 Create Directory

Una vez hecho esto, lo siguiente que debes hacer es descargar el código fuente de Pleroma. Para hacer eso, necesitas usar git:

sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma

Pleroma Server 14 Git Clone

5. Prepara e Instala Pleroma

Ahora puedes ir al directorio /opt/pleroma para comenzar el proceso de instalación del programa:

cd /opt/pleroma

Desde allí, necesitas ejecutar el programa Mix para obtener todas las dependencias adicionales para Pleroma. Para hacer eso, puedes ejecutar el siguiente comando:

sudo -Hu pleroma mix deps.get

Pleroma Server 15 Get Deps

Una vez hecho esto, ahora puedes proceder a compilar e instalar Pleroma. En eso, solo necesitas ejecutar un comando:

sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen

Este comando hará tres cosas:

  • Primero, la opción MIX_ENV=prod establecerá la variable de entorno del programa para apuntar a una configuración de producción. Esto significa que el programa no contendrá herramientas y archivos de desarrollo.
  • La opción gen creará un archivo de configuración que apunte a la variable de entorno que has proporcionado.
  • Por último, este comando también compilará e instalará Pleroma desde su código fuente. Debido a eso, este proceso tomará algún tiempo dependiendo del hardware en el que lo estés ejecutando.

Pleroma Server 16 Install And Compile Pleroma

También lee: Cómo Arreglar el Bucle de Inicio de Sesión de Ubuntu

6. Configura la Instalación de Pleroma

Una vez que Pleroma haya terminado de compilar, te pedirá información sobre tu servidor.

  1. Primero, necesitará el nombre de dominio que deseas usar para el programa. En mi caso, usé mi nombre de dominio: “yetanotherpleromaserver.xyz”.

Pleroma Server 17 Domain Name Config

  1. Desde allí, el script de configuración te preguntará el nombre que deseas para tu servidor Pleroma. En mi caso, usé el mismo nombre: “Yet Another Pleroma Server” para mi servidor.

Pleroma Server 18 Server Name

  1. A continuación, ingresa tu dirección de correo electrónico de administrador. Este debería ser un correo electrónico adecuado que pueda recibir y enviar correos.

Pleroma Server 19 Admin Email

  1. Ahora selecciona si deseas que tu instancia de Pleroma sea indexable por motores de búsqueda. Esto es útil si deseas crear una instancia pública de Pleroma a la que otras personas puedan unirse e iniciar sesión. En mi caso, quería que este servidor fuera privado, así que seleccioné “n”.

Pleroma Server 21 Search Engine Indexing

  1. Después de eso, el script te preguntará si deseas guardar tu configuración en un archivo de base de datos. En su mayoría, querrás seleccionar “sí” aquí y seleccionar las opciones predeterminadas que te preguntará.

Pleroma Server 22 Local Database

  1. Por último, el script requerirá que agregues algunos detalles sobre qué puerto y dirección escuchar. Si estás instalando Pleroma en la misma máquina en la que lo estás configurando, es seguro dejar los valores predeterminados aquí.

7. Configuraciones Específicas de Medios

  1. Ahora, el script de configuración requerirá que selecciones dónde deseas guardar los archivos multimedia que se subirán al servidor. Similar a la configuración anterior, es seguro dejar estos en predeterminado.

  2. A continuación, decide si deseas eliminar cualquier geolocalización de los datos EXIF de las fotos que recibirás. Esto es útil si deseas preservar la privacidad del uploader. Dado que solo usaré esto como una instancia privada, seleccioné “no” aquí.

  3. Además, tendrás que decidir si deseas anonimizar los nombres de archivo de las subidas. Esto es especialmente útil si deseas eliminar cualquier asociación con el uploader y lo que subieron. En mi caso, también seleccioné “no” aquí.

  4. Por último, el script de configuración te permitirá elegir si deseas crear múltiples copias de los archivos que se suben a tu servidor. En mi caso, seleccioné “no”.

8. Finaliza tu Configuración de Pleroma

  1. Ahora puedes ver tu archivo de configuración. Este se encuentra en “/opt/pleroma/config/generated_config.exs”. Puedes usar less para verlo:
less /opt/pleroma/config/generated_config.exs
  1. Para finalizar esta configuración, necesitas renombrar este archivo como “prod.secret.exs”. Puedes hacerlo ejecutando el siguiente comando:
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}

Pleroma Server 28 Config Folder

También lee: Qué es la Red Yggdrasil y Cómo Instalarla

9. Inicia la Base de Datos de Pleroma

  1. Lo siguiente que necesitas hacer es iniciar el programa de base de datos. Para hacer eso, puedes usar la base de datos que Pleroma proporcionó. Puedes cargar esa base de datos ejecutando el siguiente comando:
sudo -Hu postgres psql -f /opt/pleroma/config/setup_db.psql

Pleroma Server 29 Import Database

  1. Desde allí, ahora puedes vincular postgres y Pleroma migrando la base de datos de postgres a Pleroma. Para hacer eso, puedes ejecutar el siguiente comando:
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate

Pleroma Server 30 Migrate Database

10. Inicia tu Servidor Pleroma

Ahora, es hora de ejecutar tu servidor Pleroma. Puedes hacer esto ejecutando el siguiente comando:

sudo -Hu pleroma MIX_ENV=prod mix phx.server

Pleroma Server 31 First Run

Sin embargo, este servidor aún es inaccesible desde el navegador regular. Para permitir eso, primero necesitas configurar certbot y nginx.

También lee: 9 de los Mejores Clientes de Correo Electrónico para Linux

Configurando Certbot para Pleroma

  1. Configurar certbot es relativamente sencillo. Primero, debes crear la carpeta donde se guardarán los certificados. Puedes hacer eso ejecutando el siguiente comando:
sudo mkdir -p /var/lib/letsencrypt/
  1. Con eso hecho, ahora puedes generar un certificado para tu servidor Pleroma. Para hacer eso, puedes ejecutar este comando:
sudo certbot certonly --email [email protected] -d yourpleromaserver.com --standalone

Pleroma Server 32 Certbot Finished

Configurando Nginx para Pleroma

  1. Desde allí, lo siguiente que necesitas hacer es configurar tu servidor web nginx para Pleroma. La instalación de Pleroma ya proporciona una plantilla que puedes copiar al directorio de configuración de nginx. Para hacer eso, puedes ejecutar el siguiente comando:
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx
  1. A continuación, necesitarás editar este archivo de configuración para adaptarlo a tu servidor Pleroma. En la mayoría de los casos, esto solo implicará cambiar cuatro variables: server_name, ssl_trusted_certificate, ssl_certificate y ssl_certificate_key.
  2. Para la primera variable, necesitas cambiar el valor “example.tld” al nombre de dominio de tu servidor. En mi caso, cambié esto a “yetanotherpleromaserver.xyz”.

Pleroma Server 33 Nginx Config Server Name

  1. Desde allí, las siguientes tres variables apuntan a la ubicación del certificado SSL de tu dominio. Si hiciste tu certificado a través de esta guía, esa ruta será “/etc/letsencrypt/live/yourdomain.name/“.
  2. Esto ya está proporcionado por la plantilla de nginx y lo único que queda por hacer es cambiar el valor “example.tld” a tu nombre de dominio.

Pleroma Server 34 Ssl Cert Config

  1. Con eso hecho, ahora puedes habilitar tu configuración de nginx creando un enlace simbólico al directorio activo de nginx. Para hacer eso, puedes ejecutar el siguiente comando:
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
  1. Después de eso, ahora puedes iniciar nginx habilitando su servicio systemctl:
sudo systemctl enable nginx.service

11. Configuraciones Finales

  1. Desde aquí, ahora puedes configurar el servicio del sistema para Pleroma y crear tu primer usuario. Por defecto, Pleroma incluye una plantilla de systemctl para habilitar su servicio a través de systemd. Para usar esa plantilla, puedes ejecutar el siguiente comando:
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Pleroma Server 35 Copy Systemd Service

  1. Ahora, puedes habilitar Pleroma a través de systemctl ejecutando este comando:
sudo systemctl enable pleroma.service

Pleroma Server 36 Enable Pleroma Service

  1. Por último, ahora puedes crear tu primer usuario para tu instancia de Pleroma ejecutando el comando pleroma.user:
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new yourusername [email protected] --admin

Pleroma Server 37 Done Installing

También lee: Cómo Arreglar el Problema de No Poder Escribir en la Terminal en Linux

Preguntas Frecuentes

1. Las imágenes que subo aún tienen datos de geolocalización en ellas. ¿Qué hice mal?

Esto puede deberse a una serie de cosas. Sin embargo, la razón más común por la que esto sucedió es porque no tienes el paquete exiftool. Para la guía anterior, exiftool no era un paquete que se instaló por defecto.

Como tal, para eliminar la geolocalización de las imágenes que subes, necesitas agregar ese paquete manualmente. Para hacer eso, puedes ejecutar el siguiente comando:

sudo apt install exiftool

2. No puedo generar un Certificado Letsencrypt. ¿Qué hice mal?

Esto también puede deberse a una serie de cosas. Sin embargo, la causa más común para esto es que nginx aún está en ejecución.

Para que el comando certbot funcione, necesitas tener los puertos web comunes abiertos y no ocupados por ningún programa. Para deshabilitar nginx, puedes ejecutar el siguiente comando:

sudo systemctl stop nginx

Crédito de la imagen: Pleroma