Indice

  1. Que es GNUSocial
  2. Instalación
  3. Virtual Host para Apache2
  4. Certificado LetsEncrypt
  5. Crea la base de datos sobre MariaDB/MySQL
  6. Activación y configuración del servidor
  7. Ocultar o modificar el correo de contacto
  8. Empezar a usar y configurar el site/usuario

Que es GNUSocial

GNUSocial es una red social descentralizada basada en el protocolo OStatus, de funcionamiendo similar a los populares Twitter y Mastodon.
Lo bueno de las redes descentralizadas es que tu posees y gestionas tu información en tu propio servidor, estando a la vez conectado con muchos otros servidores descentralizados.
En su contrapartida, no todo el mundo tiene la capacidad, recursos o tiempo para montarse su propio nodo, pero existen diferentes nodos públicos donde podrías crearte una cuenta. Ejemplo: https://quitter.es/main/public , https://mastodon.social/about y https://soc.ialis.me/about.
Si solo vas a gestionar un servidor para tu cuenta o la de tu familia, los recursos necesarios son muy bajos . Un servidor web con apache por ejemplo en una raspberry pi 3 es suficiente.

La mayoría de redes sociales descentralizadas basadas en el protcolco OStatus son compatibles entre sí. Por lo que no solo podrás interoperar con otros nodos y usuarios de GNUSocial, también con:


1.- Instalación

Me logeo como root con "su" y a continuación:

Descargo la última version

    cd /var/www/ && git clone https://git.gnu.io/gnu/gnu-social.git gnusocial
    cd /var/www/gnusocial && git checkout master

Como habré descargado como root, actualizo permisos

    chown root:www-data /var/www/gnusocial -R
    chmod g+w /var/www/gnusocial/ -R

Instalo el paquete internacional de idioma para PHP. En mi caso:

sudo apt-get install php7.2-intl
/etc/init.d/apache2 restart
Fuentes, más información y/o ayuda
https://gnu.io/social/
https://git.gnu.io/gnu/gnu-social/tree/master
https://git.gnu.io/gnu/gnu-social/blob/master/INSTALL
https://thomask.sdf.org/social/es/admin/installing_gnu_social.html
https://thomask.sdf.org/social/es/admin/installing_gnu_social.html
https://www.eduardocollado.com/2017/08/31/podcast-45-instalacion-de-gnusocial/
https://laenredadera.net/instalar-gnusocial-en-una-raspberry-pi/

2.- Virtual host en apache2

Debes tener habilitado el modulo rewrite:

    a2enmod rewrite     # Carga el modulo rewrite de apache2
    apachectl -M | sort # Ver modulos de apache2 cargados

Para mejor interoperabilidad en la nube federada, es mejor crearlo bajo un nombre dns propio. Como gnusocial.tudominio.es

Creo estos dos ficheros en /etc/apache2/sites-available. (Atento y cambia con tus datos)

/etc/apache2/sites-available/gnusocial

    <VirtualHost *:80>

        ServerAdmin webmaster@tudominio.es

        DocumentRoot /var/www/gnusocial

        ServerName gnusocial.tudominio.es

        FileETag None
        TraceEnable off

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{HTTPS} off
            RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
        </IfModule>

    </VirtualHost>

/etc/apache2/sites-available/gnusocial-le-ssl.conf

    <IfModule mod_ssl.c>
        <VirtualHost *:443>

            ServerAdmin webmaster@tudominio.es

            DocumentRoot /var/www/gnusocial

            ServerName gnusocial.tudominio.es

            FileETag None
            TraceEnable off

            <Directory /var/www/gnusocial/>
                Options -Indexes
                AllowOverride All

                <Files "config.php">
                    Require all denied
                </Files>

                #<Files "install.php">
                #    Require all denied
                #</Files>

                <Files "CONFIGURE">
                    Require all denied
                </Files>

                <Files "INSTALL">
                    Require all denied
                </Files>

                <Files "README.md">
                    Require all denied
                </Files>

                <Files "TODO.SOCIAL">
                    Require all denied
                </Files>

                <Files "UPGRADE">
                    Require all denied
                </Files>
            </Directory>

            <FilesMatch "\.(txt)">
                    Require all denied
            </FilesMatch>

            <FilesMatch "\.(ini)">
                    Require all denied
            </FilesMatch>

            <FilesMatch "\.(sql)">
                    Require all denied
            </FilesMatch>

            <Directory /var/www/gnusocial/db/>
                    Require all denied
            </Directory>

            <Directory /var/www/gnusocial/.git/>
                    Require all denied
            </Directory>

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined

            Include /etc/letsencrypt/options-ssl-apache.conf

            SSLCertificateFile /etc/letsencrypt/live/tudominio.es/fullchain.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.es/privkey.pem

        </VirtualHost>
    </IfModule>

Habilitar el site virtual:

    a2ensite gnusocial
    a2ensite gnusocial-le-ssl

Reinicia Apache

    /etc/init.d/apache2 restart

3.- [Certificado LetsEncrypt]

Genero certificado con letsencrypt (doy por sentado que ya lo tienes)

Puedes usar el mismo cert para tu web y gnusocial. Para ello lanza certbot-auto, elige los sites de tu misma web y dale a expandir.

    /root/Certs/certbot/certbot-auto

        Elije los numeros de los que quieras unir en el mismo cert:
            tuweb.es www.tuweb.es web.tuweb.es web.tuweb.es gnusocial.tuweb.es

        Elije: 1: No redirect - Make no further changes to the webserver configuration.
            Ya que en nuestro fichero virtual host ya lo dejamos ok.

        Revisa que el Virtual Host que hemos añadido siga correcto. Si algo no está exacto Lets-encrypt podría modificarlo.

4.- Creo la base de datos sobre MariaDB/MySQL (doy por sentado que ya la tienes)

    mysql -h localhost -u root -p           # Te pedirá el password del usuario root de la BBDD (no el de sistema)

     CREATE DATABASE DB;                    # No puede contener espacios o puntos        # Alternativa: mysqladmin -u "root" -p create gnusocial
     GRANT ALL PRIVILEGES ON gnusocial.* TO 'user'@'localhost' IDENTIFIED BY 'password'; # Crea el usuario si no existe y asigna permisos.
     FLUSH PRIVILEGES;                      # Para activar sin tener que reiniciar servicio los cambios en grant tables

5.- Activación y configuración del servidor

    cd /var/www/gnusocial && cp htaccess.sample .htaccess
    cd /var/www/gnusocial && chown root:www-data .htaccess
    cd /var/www/gnusocial && chmod 440 .htaccess

    cd /var/www/gnusocial && mkdir avatar file && chown root:www-data avatar file
    cd /var/www/gnusocial && chmod g+w avatar file
        #chown root:www-data /var/www/gnusocial -R
        #chmod g+w /var/www/gnusocial/ -R

    /etc/init.d/apache2 restart

Ahora accede a https://gnusocial.tudominio.es/install.php y rellena:

    Site name: gnusocial.tudominio.es
    fancy URL: yes
    Server SSL: yes

    Los datos de la base de datos que vayas a usar
    Rellena los datos del primer usuario que se va a crear (será el administrador)

    Type of site:
        Private     # All will be hidden
        single user # Solo para ti y solo existirá un usuario
        community   # Ideal para grupos, escuela, familia. Permite crear varias cuentas además de la inicial de administración
        public      # Permites el registro público a todo el mundo. Ojo a la carga si entra mucha gente y ten presente la seguridad y moderación.

chown root:www-data config.php
chmod 640 /var/www/gnusocial/config.php

Si todo ha ido ok. Puedes descomentar las tres lineas del fichero /etc/apache2/sites-available/gnusocial-le-ssl.conf que bloquean el acceso a install.php y reiniciar apache.
Recibirás un correo para confirmar el correo electrónico.


6.- Ocultar o modificar el correo de contacto

Oculta o cambia el correo de contacto que se muestra editando el fichero /var/www/gnusocial/doc-src/contact

    <!-- You can reach the responsible party for this server at [%%site.email%%](mailto:%%site.email%%). -->
    You can reach the responsible party for this server at [https://tudominio.es/contacto.php](https://tudominio.es/contacto.php)

7.- Empezar a usar y configurar el site/usuario:

https://gnusocial.tudominio.es/usuario
https://gnusocial.tudominio.es/index.php/usuario

A través de la web tienes las opciones Settings y Admin.
Para cambiar los parámetros que especificaste al instalar, como la base de datos, tendrás que editar el fichero config.php


Por completar

https://git.gnu.io/gnu/gnu-social/blob/master/INSTALL https://thomask.sdf.org/social/es/admin/installing_gnu_social.html https://www.eduardocollado.com/2017/08/31/podcast-45-instalacion-de-gnusocial/ https://laenredadera.net/instalar-gnusocial-en-una-raspberry-pi/

Me quedé en la parte de Themes

https://elbinario.net/2017/05/11/un-ano-de-admin-de-gnusocial-net/ https://victorhckinthefreeworld.com/2016/11/22/mastodon-un-nuevo-servidor-compatible-con-gnusocial/

https://quitter.es/main/all https://es.wikipedia.org/wiki/OStatus


No Hecho

config.php

# Para enviar mensajes a usuarios de otros nodos hay que añadir en el archivo config.php:
$config['queue']['daemon'] = true;

# para configurar el correo tenemos que añadir al final del mismo archivo:
$config['mail']['domain'] = 'laenredadera.net';
$config['mail']['notifyfrom'] = '"La Enredadera.net" <address@hidden>';
$config['mail']['backend'] = 'smtp';
$config['mail']['debug'] = false;
$config['mail']['params'] = array(
'host' => 'smtp.dominio.com',
'port' => 587,
'auth' => true,
'username' => 'miusuario’,
'password' => ‘mipassword’
);