Cómo instalar la red social descentralizada Diaspora en Debian 10

Diaspora es una red social distribuida, de código abierto y respetuosa con la privacidad. Consiste en un grupo de nodos desplegados y de propiedad independiente que interoperan para crear la red. Diaspora es una red social que se centra en tres filosofías, la descentralización, la libertad y la privacidad.

En este tutorial, te mostraremos cómo instalar la red social distribuida Diaspora en Debian Buster 10. Instalaremos Diaspora con el servidor web Nginx y el servidor de base de datos PostgreSQL. Además, aseguraremos la instalación de Diaspora mediante SSL Letsencrypt.

Requisitos previos

  • Debian Buster 10
  • Mínimo 2 GB de RAM
  • Privilegios de root

¿Qué vamos a hacer?

  • Instalar las dependencias de los paquetes
  • Crear un nuevo usuario PostgreSQL para Diaspora
  • Crear un nuevo usuario
  • Instalar Ruby con RVM (Ruby Version Manager)
  • Instalar y configurar la red social descentralizada Diaspora
  • Configurar Diaspora como servicio Systemd
  • Configurar Nginx como proxy inverso para Diaspora
  • Prueba de

Paso 1 – Instalar las dependencias de los paquetes

En primer lugar, instalaremos algunas dependencias de paquetes para nuestra instalación de Diaspora, incluyendo el servidor web PostgreSQL, Redis y Nginx.

Instala las dependencias de los paquetes utilizando el comando apt que aparece a continuación.

sudo apt-get install build-essential cmake gnupg2 libssl-dev libcurl4-openssl-dev libxml2-dev libxslt-dev imagemagick ghostscript curl libmagickwand-dev git libpq-dev redis-server nodejs postgresql

Una vez completada toda la instalación, inicia los servicios PostgreSQL, Nginx y Redis, y añade todo ello al arranque del sistema.

systemctl start redis-server
systemctl enable redis-server

systemctl start postgresql
systemctl enable postgresql

Como resultado, algunas dependencias de paquetes para la instalación de Diaspora se han instalado en el Buster 10 de Debian.

Iniciar los servicios Redis y PostgreSQL

Paso 2 – Crear un nuevo usuario PostgreSQL para Diaspora

En este paso, cambiaremos la contraseña del usuario ‘postgres’ por defecto y crearemos un nuevo usuario PostgreSQL para Diaspora.

Accede al shell de PostgreSQL utilizando el comando ‘psql’ que aparece a continuación.

sudo -i -u postgres psql

Cambia la contraseña del usuario por defecto ‘postgres’ utilizando la siguiente consulta.

\password postgres

Ahora escribe tu nueva contraseña y repite, y la contraseña para el usuario por defecto ‘postgres‘ ha sido configurada.

A continuación, crea un nuevo usuario ‘diaspora’ con el privilegio‘CREATEDB‘ para crear una base de datos utilizando la siguiente consulta PostgreSQL.

CREATE USER diaspora WITH CREATEDB PASSWORD 'yourpassword';

Escribe‘EXIT‘ para salir del shell de PostgreSQL.

Crear una nueva base de datos para la diáspora

Como resultado, se ha creado el nuevo usuario PostgreSQL para Diaspora.

Paso 3 – Crear un nuevo usuario

Después de crear el usuario de la base de datos PostgreSQL, crearemos un nuevo usuario del sistema llamado ‘diaspora’ y lo añadiremos al grupo sudo.

Crea un nuevo usuario llamado ‘diaspora’ y configura su contraseña con el siguiente comando.

adduser --disabled-login Diaspora
passwd diaspora

Ahora añade el usuario ‘diaspora’ al grupo ‘sudo’.

usermod -a -G sudo diaspora

Como resultado, el usuario ‘diaspora’ podrá ejecutar el comando ‘sudo’ para obtener los privilegios de root.

Crear la diáspora de usuarios del sistema

Paso 4 – Instalar RVM y Ruby

Antes de seguir adelante, inicia sesión con el usuario ‘diaspora’ utilizando el siguiente comando.

su - diaspora

A continuación, instalaremos RVM (Ruby Version Manager) y Ruby 2.6 para el usuario ‘diaspora’.

Añade la clave GPGP para los paquetes de RVM utilizando el siguiente comando.

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

Impotar la clave GPG para los paquetes RVM

Ahora instala el RVM (Ruby Version Manager) utilizando el siguiente comando.

curl -sSL https://get.rvm.io | bash -s stable

Escribe tu contraseña para el usuario ‘diaspora’ y pulsa Enter.

Una vez completada la instalación, carga el script rvm en tu servidor.

source /home/diaspora/.rvm/scripts/rvm

Como resultado, podrás ejecutar el comando rvm para instalar Ruby.

Instalar el gestor de versiones de Ruby RVM

Instala Ruby 2.6 utilizando el comando rvm que aparece a continuación.

rvm install 2.6

Una vez completada la instalación, comprueba tu versión de Ruby.

ruby -v

A continuación se muestra el resultado que obtendrás.

Instalar Ruby 2.6 con el gestor de versiones de Ruby RVM

Como resultado, la instalación de RVM y Ruby bajo el usuario ‘diaspora’ se ha completado.

Paso 5 – Descargar y configurar Diaspora

Antes de continuar, asegúrate de que has iniciado sesión con el usuario ‘diaspora’.

Descarga el código fuente de Diaspora utilizando el comando git y entra en él.

git clone -b master https://github.com/diaspora/diaspora.git
cd diaspora

Ahora copia el ejemplo de configuración de la base de datos ‘database.yml’ y la configuración de diaspora ‘diaspora.yml’.

cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml

A continuación, edita la configuración de la base de datos ‘database.yml’ utilizando el editor vim.

vim config/database.yml

En la sección de la base de datos ‘PostgreSQL’, cambia el nombre de usuario y la contraseña detallados con tus datos.

postgresql: &postgresql
  adapter: postgresql
  host: "localhost"
  port: 5432
  username: "diaspora"
  password: "yourpassword"
  encoding: unicode

Guarda y cierra.

A continuación, edita la configuración de diaspora ‘diaspora.yml’.

vim config/diaspora.yml

Cambia la configuración como se indica a continuación, y asegúrate de que el nombre del dominio sea el tuyo.

configuration: ## Section
...
  environment: ## Section
...
    url: "https://pod.hakase-labs.to/"
    certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
    require_ssl: true
...
  server: ## Section
    rails_environment: 'production'
...

Guarda y cierra.

A continuación, instala las librerías gem y ruby necesarias para Diaspora utilizando los siguientes comandos.

gem install bundler
script/configure_bundler
bin/bundle install --full-index

Instalar las bibliotecas de Diaspora

Después, ejecuta la migración de la base de datos para Diaspora.

RAILS_ENV=production bundle exec rake db:create db:migrate

Una vez completado todo, compila todo el pipeline de activos de rails utilizando el siguiente comando.

RAILS_ENV=production bin/rake assets:precompile

Y la instalación de Diaspora se ha completado.

Paso 6 – Configurar Diaspora como servicio

Después de instalar Diaspora, vamos a configurar Diaspora como un servicio systemd.

Ahora ve al directorio ‘/etc/systemd/system’ y crea un nuevo archivo de servicio de unidades de agrupación ‘diaspora.target’ utilizando el editor vim.

cd /etc/systemd/system/
vim diaspora.target

Pega en él la siguiente configuración.

[Unit]
Description=Diaspora social network
Wants=postgresql.service
Wants=redis-server.service
After=redis-server.service
After=postgresql.service

[Install]
WantedBy=multi-user.target

Guarda y cierra.

A continuación, crea un nuevo archivo de servicio para Diaspora llamado ‘diaspora-web.service’ utilizando el editor vim.

vim diaspora-web.service

Pega en él la siguiente configuración.

[Unit]
Description=Diaspora social network (unicorn)
PartOf=diaspora.target
StopWhenUnneeded=true

[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec unicorn -c config/unicorn.rb -E production"
Restart=always

[Install]
WantedBy=diaspora.target

Guarda y cierra.

A continuación, crea un nuevo archivo de servicio ‘diaspora-sidekiq.service’ para el servicio de monitorización utilizando el comando vim que aparece a continuación.

vim diaspora-sidekiq.service

Pega la siguiente configuración.

[Unit]
Description=Diaspora social network (sidekiq)
PartOf=diaspora.target
StopWhenUnneeded=true

[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "bin/bundle exec sidekiq"
Restart=always

[Install]
WantedBy=diaspora.target

Guarda y cierra.

Ahora vuelve a cargar el gestor systemd y añade todos los servicios de diaspora al arranque del sistema.

sudo systemctl daemon-reload
sudo systemctl enable diaspora.target diaspora-sidekiq.service diaspora-web.service

Configurar Diaspora como servicio Systemd

A continuación, inicia el servicio de Diaspora utilizando el siguiente comando.

systemctl start diaspora.target

El ‘diaspora.target’ iniciará automáticamente otros servicios el ‘diaspora-web.service’ y el ‘diaspora-sidekiq.service’.

Comprueba los servicios de diaspora utilizando el siguiente comando.

systemctl status diaspora-web
systemctl status diaspora-sidekiq

A continuación se muestra el resultado que obtendrás.

Iniciar el Servicio de Diáspora

El resultado es que Diaspora ya está funcionando como un servicio systemd. Y por último, la configuración de Diaspora se ha completado.

Paso 7 – Generar SSL Letsencrypt

Para este tutorial, vamos a asegurar nuestra instalación de Diaspora utilizando SSL Letsencrypt. en este paso, instalaremos la herramienta certbot y generaremos SSL Letsencrypt para nuestra instalación de dominio de Diaspora.

Instala Certbot utilizando el comando apt que aparece a continuación.

sudo apt install certbot

Una vez completada la instalación, genera el Letsencrypt SSL para tu dominio de Diaspora utilizando el comando certbot que aparece a continuación.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d pod.hakase-labs.to

Ahora tu certificado estará disponible en el directorio ‘/etc/letsencrypt/live/yourdomain.com/’.

Paso 8 – Crear un nuevo usuario y descargar Diaspora

En este paso, instalaremos y configuraremos el servidor web Nginx como proxy inverso para Diaspora.

Instala Nginx utilizando el comando apt que aparece a continuación.

sudo apt install nginx

Una vez completada la instalación, ve al directorio ‘/etc/nginx/sites-available’ y crea una nueva configuración de host virtual ‘diaspora’ utilizando el editor vim.

cd /etc/nginx/sites-available/
vim diaspora

Cambia el nombre del dominio y la ruta del SSL Letsencrypt por los tuyos, y pégalos en él.

upstream diaspora_server {
 server unix:/home/diaspora/diaspora/tmp/diaspora.sock;
}

server {
  listen 80;
  listen [::]:80;
  server_name pod.hakase-labs.to;
  return 301 https://pod.hakase-labs.to$request_uri;

  access_log /dev/null;
  error_log /dev/null;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name pod.hakase-labs.to;

  access_log /var/log/nginx/dspr-access.log;
  error_log /var/log/nginx/dspr-error.log;

  ssl_certificate /etc/letsencrypt/live/pod.hakase-labs.to/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/pod.hakase-labs.to/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;
  ssl_ecdh_curve X25519:P-521:P-384:P-256;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;

  root /home/diaspora/diaspora/public;

  client_max_body_size 5M;
  client_body_buffer_size 256K;

  try_files $uri @diaspora;

  location /assets/ {
    expires max;
    add_header Cache-Control public;
  }

  location @diaspora {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://diaspora_server;
  }
}

Guarda y cierra.

Ahora activa la configuración de Diaspora y prueba la configuración de Nginx.

ln -s /etc/nginx/sites-available/diaspora /etc/nginx/sites-enabled/
nginx -t

Asegúrate de que no hay ningún error, luego reinicia el servicio Nginx y añádelo al arranque del sistema.

systemctl restart nginx
systemctl enable nginx

Como resultado, se ha completado la configuración del servidor web Nginx como proxy inverso para Diaspora.

Configurar Nginx como proxy inverso para Diaspora

Paso 9 – Prueba

Abre tu navegador web y escribe el nombre de tu dominio de Diaspora en la barra de direcciones.

http://pod.hakase-labs.to/

Y obtendrás la página de inicio de Diaspora por defecto como la que aparece a continuación.

Página de inicio de la diáspora

Haz clic en el enlace de la sección«Crear una cuenta«.

Ahora escribe tu dirección de correo electrónico, tu nombre de usuario y tu contraseña para la primera cuenta de Diaspora, y haz clic en «Crearcuenta«.

Crear cuenta Diáspora

Sube tu foto de perfil, etc., y luego haz clic en«¡Genial! Llévame a Diaspora‘.

Configuración del perfil de la diáspora

Y obtendrás el panel de control de Diaspora como se muestra a continuación.

Panel de control de la diáspora

Como puedes ver, la instalación de Diaspora con Nginx Reverse Proxy en Debian Buster 10 se ha completado con éxito.

También te podría gustar...