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.
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.
http
introduce http://example.com
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. 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
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.
Introduce las credenciales que elegiste durante el proceso anterior de make
. Después de iniciar sesión, deberías ver la siguiente pantalla.
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.
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.
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.