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.
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.
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.
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
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.
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.
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
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
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.
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.
Paso 9 – Prueba
Abre tu navegador web y escribe el nombre de tu dominio de Diaspora en la barra de direcciones.
Y obtendrás la página de inicio de Diaspora por defecto como la que aparece a continuación.
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«.
Sube tu foto de perfil, etc., y luego haz clic en«¡Genial! Llévame a Diaspora‘.
Y obtendrás el panel de control de Diaspora como se muestra a continuación.
Como puedes ver, la instalación de Diaspora con Nginx Reverse Proxy en Debian Buster 10 se ha completado con éxito.