GNU Social (unificado con el proyecto StatusNet, anteriormente Laconica) es un servidor de microblogueo de software libre escrito en PHP que implementa el estándar Ostatus y ActivityPub para interactuar entre distintas instalaciones.
A la par que ofrece una funcionalidad similar a Twitter, GNU Social busca proporcionar el potencial para una comunicación abierta, inter-servicios y distribuida entre comunidades de microblogueo. Empresas e individuos pueden instalar y controlar sus propios servicios y datos.
Bueno, esto es lo que nos dice la madre Wikipedia. Pero para resumir utilizando otro lenguaje podríamos decir que GNU Social es una red social parecida a Twitter, -«el Twitter bueno» que dirían algunos- y bueno, tenía este post en el tintero a medias -porque me fallaba una cosa, pero ya está resuelta- así que vamos a pasar a la acción y vamos a explicar todo el proceso.
Preparando el ecosistema
Antes de ponernos directamente con la instalación tenemos que tener en cuenta que hay que tener un servidor web preparado para que GNU Social funcione correctamente.
Así que tendremos un servidor web que puede ser Apache, LigHTTPS o Nginx, en este tutorial utilizaremos Nginx. También es necesario tener un servidor de Bases de Datos que puede ser MariaDB.
Y finalmente, tendremos que tener PHP instalado, en esta ocasión, usaremos PHP 7.4 que es la versión que trae Debian 11 por defecto. Aún así, tendremos que tener en cuenta que hay que instalar estos módulos de PHP:
apt install php7.4-fpm php7.4-curl php7.4-gd php7.4-gmp php7.4-intl php7.4-json php7.4-mysqlnd php7.4-xmlwriter php7.4-mbstring php7.4-bcmath
Instalación LAMP
Para poder instalar LEMP en Debian 11, deberéis de seguir estas instrucciones de este tutorial:

Configuración de Nginx
Lo primero que haremos será configurar la configuración de Nginx necesaria para acceder con nuestro dominio.
Tened en cuenta que es recomendable configurar un FPM personalizado como hemos realizado en la configuración de más abajo, por lo que sugerimos configurarlo de la siguiente forma:

Creamos el siguiente fichero /etc/nginx/sites-available/gnusocial.conf
con el siguiente contenido:
server {
listen 80;
server_name dominio.es;
root /var/www/html/vhost/dominio.es/www/public;
rewrite ^ https://$server_name$request_uri? permanent;
# PHP
location ~ \.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php7.4-fpm-gnu.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
# Location
location / {
try_files $uri $uri/ @gnusocial;
}
# Fancy URLs
location @gnusocial {
rewrite ^(.*)$ /index.php?p=$1 last;
}
# Restrict access that is unnecessary anyway
location ~ /\.(ht|git) {
deny all;
}
}
dominio.es
por vuestro domino que queréis configurar.mkdir -p /var/www/html/vhost/dominio.es/{logs,www}
Y activamos la configuración de nuestra web y recargamos Apache2:
ln -s /etc/nginx/sites-available/gnusocial.conf /etc/nginx/sites-enabled/gnusocial.conf
systemctl reload nginx
Creación de la base de datos
Creamos una base de datos y un usuario con privilegios siguiendo este tutorial adantándolo a nuestras necesidades:

CREATE DATABASE gnusocial;
CREATE USER 'gnusersocial'@'localhost' IDENTIFIED BY 'supermegapass';
GRANT ALL ON gnusocial.* TO 'gnusersocial'@'localhost';
FLUSH PRIVILEGES;
Configuramos certificado SSL
Para esto utilizaremos Let's Encrypt para generar un certificado, tan sólo tenéis que seguir este otro tutorial:

Descargar GNU Social
Ahora vamos a descargar los ficheros de GNU Social desde el mismo Git -y lo haremos directamente en /var/www/html/vhost/dominio.es/www
:
git clone https://notabug.org/diogo/gnu-social.git
Movemos el contenido de la carpeta gnu-social a la ruta que toca:
mv gnu-social/* .
mv gnu-social/.* .
Y ponemos los permisos y usuarios correctos:
chown www-data.www-data -R *
Añadimos permisos de escritura:
chmod a+w /var/www/html/vhost/dominio.es/www
Una vez configurado todo esto, ya podremos acceder con nuestro navegador a midominio/install.php
, pero antes, tenemos que configurar la base de datos.
Es posible que aparezca algún error de que no ha podido crear un directorio, de ser así, lo creamos manualmente:
mkdir -p /var/www/html/vhost/dominio.es/www/file/avatar
chown www-data.www-data -R /var/www/html/vhost/dominio.es/www/file
Instalación de nodo GNU Social
Accedemos a nuestra instalación desde el navegador a dominio.es/install.php y rellenamos los campos que nos piden:



chmod a+w /var/www/html/vhost/dominio.es/www/avatar
chmod a+w /var/www/html/vhost/dominio.es/www/file
Y finalmente, eliminamos el fichero de la instalación:
rm -rf /var/www/html/vhost/dominio.es/www/public/install.php
Comentarios