Cómo instalar Wallabag en Ubuntu 18.04 LTS

Wallabag es un servicio del tipo «léelo más tarde». Te permite guardar páginas web para que puedas leerlas más tarde a tu ritmo. Hay muchos servicios que te permiten hacerlo, como Pocket, Instapaper, etc., pero tener un servicio instalado en un servidor de tu propiedad es beneficioso. Por un lado, no quebrará y se llevará consigo los enlaces. Y puedes mantener la privacidad de tus datos de navegación.

Este tutorial explica cómo instalar y configurar Wallabag en un servidor con Ubuntu 18.04 o superior. También explicará cómo configurar Nginx, MariaDB, Git, Postfix, Composer y PHP, que son necesarios para que Wallabag funcione.

Requisitos previos

Necesitarás lo siguiente antes de continuar con nuestro tutorial.

  • Un servidor basado en Ubuntu 18.04 que tenga un usuario no root con privilegios sudo.
  • También necesitarás la herramienta Make. Para instalarla, utiliza el siguiente comando
    $ sudo apt install make
    

Instalar git

El primer paso es instalar Git, que utilizaremos más adelante para copiar los archivos de instalación de wallabag desde su repositorio git. Git suele venir instalado hoy en día en la mayoría de los servidores web. Si no lo está, entonces procede con los siguientes comandos.

$ sudo apt install git
$ git config --global user.name "Your name"
$ git config --global user.email "[email protected]" 

Instalar Nginx

$ sudo apt install nginx 

Si utilizas el cortafuegos de Ubuntu, añade las siguientes reglas a su lista.

$ sudo ufw allow "Nginx HTTP" 

Comprueba también el estado.

$ sudo ufw status 

Deberías ver algo como esto

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Intenta acceder a la dirección IP de tu servidor en el navegador. Deberías ver la siguiente página predeterminada de Nginx que confirma que Nginx se ha instalado correctamente.

Página de bienvenida de Nginx

Instalar MariaDB

MariaDB es un sustituto directo de MySQL, lo que significa que los comandos para ejecutar y utilizar MariaDB son los mismos que los de MySQL. Para instalar MariaDB, ejecuta los siguientes comandos

$ sudo apt install mariadb-server 

Ejecuta el siguiente comando para realizar la configuración por defecto, como dar una contraseña de root, eliminar los usuarios anónimos, no permitir el inicio de sesión de root de forma remota y eliminar las tablas de prueba. Pulsa sí para todo y establece una contraseña de root.

$ sudo mysql_secure_installation 

Hay una advertencia al configurar la contraseña de root. MariaDB permite por defecto que los usuarios root del sistema inicien sesión en MariaDB sin contraseña. Pero si vas a utilizar una aplicación de terceros para acceder a través de root, una contraseña es imprescindible, de lo contrario aplicaciones como PHPMyAdmin fallarán. Para ello, necesitas desactivar la autenticación basada en plugins, que es la opción por defecto en MariaDB.

Para deshabilitar la autenticación basada en plugins y restaurar la contraseña de root, entra primero en el prompt de MySQL utilizando el siguiente comando.

$ sudo mysql -u root 

Ahora introduce los siguientes comandos para desactivar la autenticación por plugin.

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit 

Después de esto reinicia tu servicio MariaDB.

$ sudo systemctl restart mariadb.service 

Y ya está. La próxima vez que quieras acceder a MySQL, utiliza el siguiente comando

$ sudo mysql -u root -p 

Y se te pedirá la contraseña de root que habías establecido inicialmente.

Configurar MariaDB para Wallabag

Ahora necesitamos configurar una base de datos para utilizarla en la aplicación wallabag. Para ello, inicia sesión en MySQL. Asumiremos que estás utilizando el método de autenticación por defecto de MariaDB (es decir, sin utilizar la contraseña de root) para el resto del tutorial.

$ sudo mysql -u root 

Una vez en el prompt introduce los siguientes comandos que configurarán una base de datos llamada wallabag y un usuario de base de datos llamado wallabaguser y le darán acceso a la base de datos.

create database wallabag;
create user wallabaguser@localhost;
set password for wallabaguser@localhost= password("yourpassword");
grant all privileges on wallabag.* to wallabaguser@localhost identified by "yourpassword";
flush privileges;
exit

Instalar PHP y composer

Ahora que nuestro servidor está en marcha, es hora de instalar PHP y Composer. Como estamos utilizando Nginx, necesitamos instalar el paquete PHP-FPM. Junto con él necesitaremos otras extensiones de PHP como mbstring, mysql, gd, bc-math, curl, zip y xml.

$ sudo apt install php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-gettext php-tokenizer
$ sudo apt install composer 

Eso es todo por ahora. Más adelante pasaremos a la parte de configuración de PHP y Composer. Pasemos al siguiente paso.

Configurar Nginx

Es hora de configurar nuestra instalación de Nginx antes de proceder a la instalación propiamente dicha. Asumiendo que el nombre de dominio que estás utilizando para wallabag es ejemplo.com, crea un directorio donde alojarás tu instalación. Wallabag se instalará en el directorio html.

$ sudo mkdir -p /var/www/example.com/html 

A continuación, asigna la propiedad del directorio a www-data que utiliza Nginx.

$ sudo chown -R www-data:www-data /var/www/example.com/html 

Asegúrate de que se establecen los permisos correctos.

$ sudo chmod -R 755 /var/www/example.com 

A continuación, crea un host virtual para el sitio.

sudo nano /etc/nginx/sites-available/example.com 

Pega la siguiente configuración que funciona con wallabag.

server {
    server_name example.com www.example.com;
    root /var/www/example/html/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }
    location ~ ^/app\.php(/|$) {
        # replace php7.2-fpm with whichever php 7.x version you are using
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }

    error_log /var/log/nginx/wallabag_error.log;
    access_log /var/log/nginx/wallabag_access.log;
}

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida. A continuación, tenemos que habilitar esta configuración. Para ello, crea un enlace desde ella al directorio sites-enabled.

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ 

Puede que te encuentres con un problema de cubo de memoria que surge debido a los nombres de servidor adicionales. Para solucionarlo, abre el archivo nginx.conf

$ sudo nano /etc/nginx/nginx.conf 

Busca la directiva server_names_hash_bucket_size y elimina el símbolo # para descomentar la línea:

server_names_hash_bucket_size 64; 

Guarda el archivo. A continuación, asegúrate de que no hay errores en la configuración de Nginx.

$ sudo nginx -t 

Si no hay ningún problema, reinicia Nginx para activar los nuevos cambios.

$ sudo systemctl restart nginx 

Instalar Wallabag

Primero, clona wallabag desde su repositorio en GitHub. Como dimos los permisos de la carpeta html al usuario www-data, necesitaremos cambiar a él para ejecutar la instalación.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html

Esto copiará los archivos de instalación de wallabag en el directorio html. Instala Wallabag utilizando el comando make.

$ cd html
$ make install

Se te harán varias preguntas durante la instalación.

Si quieres utilizar httpintroduce http://example.com cuando se te pida el nombre de dominio y sáltate la parte HTTPS del tutorial.

database_driver (pdo_mysql): pdo_mysql
database_driver_class (null): Press Enter
database_host (127.0.0.1): 127.0.0.1
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): wallabaguser
database_password (null): wallabagpassword
database_path (null): Press Enter
database_table_prefix (wallabag_): Prefix of your choice or Press Enter for the default.
database_socket (null): Press Enter
database_charset (utf8mb4): Press Enter
domain_name ('https://your-wallabag-url-instance.com'): http://example.com 

También se te pedirán los datos SMTP para recibir correos sobre la contraseña olvidada o la autenticación de dos factores. Si quieres utilizar un servicio SMTP de terceros como Mailgun o Sendgrid, puedes rellenar los valores restantes o simplemente pulsar Intro a través de ellos. Introduce no contra el parámetro fosuser_registration si no quieres que nadie se registre en tu sitio. Cambia también el valor del parámetro secret parámetro. Si tienes que importar grandes cantidades de datos, instala RabbitMQ o Redis e introduce los valores cuando se te pregunte.

Cuando se te pregunte si deseas restablecer la base de datos existente, pulsa Intro para utilizar la opción por defecto (no). También se te pedirá que crees un usuario Administrador.

Vuelve a tu login de usuario por defecto de Ubuntu cuando hayas terminado.

$ exit

Configurar SMTP

Si quieres configurar un servidor SMTP básico y no utilizar servicios SMTP de terceros, instala Mailutils.

$ sudo apt install mailutils

Durante la instalación, te pedirá que selecciones un tipo de configuración para Postfix. Selecciona Internet Site y continúa. Introduce example.com cuando te pregunte por el campo Nombre de correo del sistema. Y ya está.

Configurar HTTPS

Utilizaremos Let’s Encrypt para configurar HTTPS para nuestra instalación de wallabag. Añade el siguiente repositorio para la herramienta Certbot.

$ sudo add-apt-repository ppa:certbot/certbot

Instala el paquete Certbot Nginx desde el repositorio.

$ sudo apt install python-certbot-nginx

Obtén el certificado para tu dominio ejemplo.com.

$ sudo certbot --nginx -d example.com -d www.example.com

Si es la primera vez que utilizas la herramienta Certbot, se te pedirá que proporciones un correo electrónico y que aceptes las condiciones del servicio. También se te preguntará si quieres que tu correo electrónico se comparta con la EFF (Electronic Frontier Foundation). Elige N si no quieres que la EFF te envíe correos electrónicos sobre sus noticias y campañas.

Si lo consigues, Certbot te preguntará cómo quieres configurar tus ajustes HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Elige 2 porque queremos que todas las peticiones a tu dominio se redirijan a https.

Y ya está. Tu dominio HTTPS está activo. Certbot renovará automáticamente tu dominio cada 90 días. Para probar el proceso de renovación, haz un simulacro.

$ sudo certbot renew --dry-run

Si no ves ningún error, significa que todo está perfecto.

Configurar Wallabag

Ahora que ya hemos configurado wallabag, abre tu dominio wallabag. Deberías ver la siguiente pantalla.

Inicio de sesión en Wallabag

Introduce las credenciales que elegiste durante el proceso anterior de make. Después de iniciar sesión, deberías ver la siguiente pantalla.

Salpicadero Wallabag

Deberías activar la autenticación de dos factores. Para ello, haz clic en el botón Config de la izquierda y selecciona la pestaña USER INFORMATION de la siguiente pantalla. Activa la marca Two-factor authentication para habilitarla.

Ajustes de Wallabag

Puedes importar tus datos de Pockets, Instapaper, Pinboard y marcadores de navegadores basados en Firefox y Chrome.

Wallabag pone a tu disposición multitud de aplicaciones para cada navegador, móvil o lector de Ebooks con las que puedes añadir enlaces. Y si no te apetece nada más, incluso puedes utilizar un Bookmarklet, a cuyos detalles puedes acceder desde la sección How to de tu configuración.

Cómo utilizar Wallabag

Actualizar Wallabag

Para actualizar Wallabag a la última versión, sólo tienes que ejecutar los siguientes comandos.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com/html
$ make update

Eso es todo por este tutorial. Ahora puedes guardar y leer artículos de tu servidor sin comprometer la privacidad de tus datos.

Scroll al inicio