Pasos para montar un nodo GNUsocial con Nginx y mariaDB

No es complicado.  Con descentralizadas me refiero a que no existe alguien que controle cada nodo y estos son políticamente hablando «independientes» cada uno del otro en cuanto a las normativas que pueden tener. Básicamente se necesita un servidor con php5 y mariadb. Paso a relatar los pasos base para tener un nodo activo.

Hemos de dar por sentado que se tiene ya comprado un dominio apuntando a una maquina. En este articulo vamos a suponer que el dominio es: madrid.now y que el sistema operativo en el que lo instalamos es debian 8 jessie.

 

Configuramos los repositorios.

Para instalar luego el certificado para https tendremos que tener los backports añadidos como repositorios. Un ejemplo de /etc/apt/sources.list es este:

deb http://ftp.debian.org/debian jessie main contrib non-free
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org jessie/updates main contrib non-free
deb http://ftp.debian.org/debian jessie-backports main

 

Configuramos zona horaria e idioma.

dpkg-reconfigure locales
dpkg-reconfigure tzdata

 

Instalamos lo necesario en el sistema (nginx, php5, mariadb, …)

 

apt-get update
apt-get install nginx-full nginx-doc dialog openssl
apt-get install git mariadb-server nano
apt-get install php5 php5-mysqlnd php5-json php5-intl php5-gmp php5-gd php5-fpm
apt-get install gettext exif curl php5-curl
apt-get remove apache2-bin
apt-get autoremove
/etc/init.d/nginx restart

 

Clonamos gnusocial del repositorio git

cd /var/www
rm -rf html
mkdir madrid.now
cd madrid.now
git clone https://git.gnu.io/gnu/gnu-social.git .

chgrp www-data /var/www/madrid.now/
chown -R www-data:www-data /var/www/madrid.now/

 

La base de datos

 

Creamos una base de datos llamada Madrid

mysql -u root -p -e "create database madrid"

Comprobamos que se ha creado

mysql -u root -p -e "show databases;"

Entramos como root para crear un usuario

mysql -u root -p

Creamos un usuario con una password

 

CREATE USER 'elnombredelusuario'@'localhost' IDENTIFIED BY 'lapassword';

Le damos permisos a ese usuario sobre la base de datos Madrid

 

GRANT ALL ON madrid.* TO 'elnombredeusaurio'@'localhost';

 

Instalar certificado SSL

 

apt-get install certbot -t jessie-backports
certbot certonly --standalone -d madrid.now

 

Apuntar Nginx al directorio /var/www/madrid.now/

 

cd /etc/nginx/sites-available
mv default madrid.now
nano madrid.now

 

Metemos este contenido por ejemplo

 

server {
 listen 80;
 listen [::]:80;
 server_name madrid.now;

access_log /var/log/nginx/madrid.now-http-access.log;
 error_log  /var/log/nginx/madrid.now-http-error.log;
 return  301 https://$server_name$request_uri;
 }

server {
 listen 443 ssl;
 server_name madrid.now;
 charset utf-8;

add_header Strict-Transport-Security "max-age=31536000;";
 add_header Pragma "no-cache";
 add_header Cache-Control "private, max-age=0, no-cache, no-store";

ssl on;
 ssl_certificate /etc/letsencrypt/live/madrid.now/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/madrid.now/privkey.pem;

access_log /var/log/nginx/madrid.now-https-access.log;
 error_log  /var/log/nginx/madrid.now-https-error.log;

root /var/www/madrid.now;
 index index.php;

location ~ \.php {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 }

location / {
 try_files $uri $uri/ @gnusocial;
 }

location @gnusocial {
 rewrite ^(.*)$ /index.php?p=$1 last;
 }

location ~ /\.(ht|git) {
 deny all;
 }

}

Creamos un enlace y reiniciamos nginx

 

ln -s /etc/nginx/sites-available/madrid.now /etc/nginx/sites-enabled/madrid.now
/etc/init.d/nginx restart

 

Nos vamos al instalador

https://madrid.now/install.php

 

Una vez esté instalado y vinculado con la base de datos procedemos con lo siguiente:

 

chmod a+w /var/www/madrid.now/avatar
chmod a+w /var/www/madrid.now/file
rm -rf /var/www/madrid.now/install.php

 

 

Apariencia twitter. Clonamos el plug-in qvitter

mkdir /var/www/madrid.now/local
cd /var/www/madrid.now/local
mkdir plugins
cd plugins
git clone https://git.gnu.io/h2p/Qvitter
chown -R www-data:www-data /var/www/madrid.now/local

 

Activamos el plugin en el archivo /var/www/madrid.now/config.php

Con esta configuración por ejemplo

$config['site']['name'] = 'Red social libre de Madrid';
$config['site']['server'] = 'madrid.now';
$config['site']['path'] = false;
$config['site']['ssl'] = 'always';
$config['db']['database'] = 'mysqli://usuario:password@localhost/madrid';
$config['db']['type'] = 'mysql';
$config['site']['profile'] = 'public';

// Qvitter

addPlugin('Qvitter');
$config['site']['qvitter']['enabledbydefault'] = true;
$config['site']['qvitter']['defaultbackgroundcolor'] = '#f4f4f4';
$config['site']['qvitter']['defaultlinkcolor'] = '#0084B4';
$config['site']['qvitter']['timebetweenpolling'] = 5000;
$config['site']['qvitter']['urlshortenerapiurl'] = 'http://qttr.at/yourls-api.php';
$config['site']['qvitter']['urlshortenersignature'] = 'b6afeec983';
$config['site']['qvitter']['sitebackground'] = 'img/madridmadridmadrid.jpg';
$config['site']['qvitter']['favicon_path'] = Plugin::staticPath('Qvitter', '').'img/gnusocial-favicons/';
$config['site']['qvitter']['sprite'] = Plugin::staticPath('Qvitter', '').'img/sprite.png?v=40';
$config['site']['qvitter']['enablewelcometext'] = false;
$config['site']['qvitter']['blocked_ips'] = array();
$config['thumbnail']['maxsize'] = 3000;
$config['profile']['delete'] = true;
$config['profile']['changenick'] = true;
$config['public']['localonly'] = true;
addPlugin('StoreRemoteMedia');

 

 

¿Le ha gustado el contenido?

Si le ha gustado y le ha sido de utilidad puede donar aquí https://paypal.me/mierdatv .  
También puede escribir un comentario si lo considera oportuno.  
 

Comentarios 1

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *