Wallabag es un tipo de servicio de "leer para más tarde". Te permite guardar páginas web para leerlas más tarde a su ritmo libre. Hay muchos servicios que te permiten hacerlo pero tener un servicio instalado en un servidor de tu propiedad es mucho mejor. Por un lado, no cerrará y eliminará los enlaces con él.

Hace algún tiempo ya, escribí un artículo sobre como instalar Wallabag en Debian 9 utilizando Docker. Os lo dejo por aquí por si os interesa hacer esta instalación usando Docker:

Crear un nodo de Wallabag en Debian 9 y olvídate de Pocket
Wallabag es un software que nos permite almacenar cualquier lectura o artículo en nuestro servidor y eso hace que seamos nosotros nuestros propios dueños y no dependamos de terceros.

Si por lo contrario queréis configurar Wallabag en un servidor con PHP e instalarlo de forma nativa en el servidor, podéis seguir estas instrucciones.

Pasos previos

Este tutorial explicará la instalación y configuración de Wallabag en un servidor que ejecuta Debian 12. Utilizaremos Nginx, MySQL, Composer y PHP, todos los cuales son necesarios para que Wallabag funcione correctamente.

Además necesitamos acceso root para realizar toda la instalación.

Como siempre será necesario tener el sistema operativo con las últimas versiones:

# apt update
# apt upgrade

Instalación de Wallabag

Para realizar la instalación deberemos de hacer varios pasos para configurar todo lo necesario, a continuación os dejamos todos los pasos:

Instalación de LEMP

Para que funcione correctamente Wallabag, es necesario tener un servidor web con Nginx y todo lo necesario. Para ello deberéis de seguir este otro tutorial:

Instalación de servidor web LEMP en Debian 12
A continuación vamos a instalar un servidor LEMP completo en Debian GNU/Linux 12 “Bookworm” (Stable). Hay algunas cosas que han cambiado respecto a otras versiones de Debian, y es que por ejemplo Debian 12 trae en sus repositorios PHP 8.2.

Instalación de PHP y extensiones necesarias

En Debian 12, la versión por defecto de PHP es la 8.2. Instalaremos PHP desde los repositorios oficiales de Debian y todas las siguientes extensiones:

# apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli 

Instalación de Composer

Para la instalación de Composer, seguiremos este otro tutorial sin realizar el primer punto que es instalar un servidor LEMP:

Instalación de composer en Debian 12
Composer es una popular herramienta de gestión de dependencias para PHP, creada principalmente para facilitar la instalación y las actualizaciones de dependencias de un proyecto.
# composer --version
Composer version 2.2.22 2023-09-29 10:53:45

Crear base de datos y usuario

Necesitaremos una base de datos para almacenar toda la información, para ello crearemos una base de datos y un usuario para gestionar dicha base de datos:

Crear base de datos y usuario con privilegios en MySQL/MariaDB
En el siguiente tutorial vamos ha explicar como crear una base de datos y un usuario para asignar permisos totales a esa base de datos. Acceder a MySQL/MariaDB Para gestionar bases de datos o usuarios, deberemos de acceder a la shell de MySQL/MariaDB. Existen programas como phpMyAdmin de
CREATE DATABASE wallabag;
CREATE USER 'wallabaguser'@'localhost' IDENTIFIED BY 'supercontraseña';
GRANT ALL PRIVILEGES ON wallabag.* TO 'wallabaguser'@'localhost';
FLUSH PRIVILEGES;

Descargar y configurar Wallabag

Ahora toca descargar la última versión disponible de Wallabag, para ello ejecutaremos el siguiente comando:

wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package

Y lo moveremos en la ruta que prefiramos:

mv wallabag-2.6.8/ /var/www/html/wallabag

Y configuramos permisos:

chown www-data:www-data -R /var/www/html/wallabag

Generamos una key para luego añadirlo en la configuración:

openssl rand -base64 32

Copiamos el fichero de configuración y lo editamos:

cd /var/www/html/wallabag
cp app/config/parameters.yml.dist app/config/parameters.yml
nano app/config/parameters.yml

Del fichero de configuración tendremos que configurar la base de datos:

parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: 3306
    database_name: wallabag
    database_user: wallabaguser
    database_password: supercontraseña
💡
Recuerda de utilizar una contraseña segura y modificar el nombre de usuario y base de datos para securizar tu entorno

También configuramos el dominio y el nombre de nuestro Wallabag:

    domain_name: https://news.tutos.top
    server_name: "Wallabag de voidnull"

Adicionalmente, podemos configurar el apartado para configurar un SMTP y también añadiremos la key generada anteriormente:

    secret: swbM0hMBufC+tkQbZJsl8EmPr2XZnfXk8Uu6I/JaG1w=

Instalación de Wallabag

Ahora que tenemos todo instalado y configurado, vamos a lanzar la instalación con composer para que se instale todo lo necesario.

SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist

Instalamos Wallabag:

php bin/console wallabag:install --env=prod

La salida de este comando es el siguiente:

Salida comando

wallabag installerStep 1 of 4: Checking system requirements.

Checked Status Recommendation

PDO Driver (pdo_mysql) OK!
Database connection OK!
Database version OK!
curl_exec OK!
curl_multi_init OK!

[OK] Success! Your system can run wallabag properly.

Step 2 of 4: Setting up database.

It appears that your database already exists. Would you like to reset it? (yes/no) [no]:

yes

Dropping database, creating database and schema...
Clearing the cache...

Database successfully setup.

Step 3 of 4: Administration setup.

Would you like to create a new admin user (recommended)? (yes/no) [yes]:

yes

Username [wallabag]:

admin

Password [wallabag]:

Email [wallabag@wallabag.io]:

admin@dominio.com

Administration successfully setup.

Step 4 of 4: Config setup.

Config successfully setup.

[OK] wallabag has been successfully installed.

[OK] You can now configure your web server, see https://doc.wallabag.org

💡
Durante el proceso, te pedirá crear un usuario admin para poder gestionar Wallabag, es importante que recuerdes el usuario y contraseña.

Reconfigura los permisos de nuevo:

chown -R www-data:www-data /var/www/html/wallabag

Configura Nginx

Ahora que tenemos la aplicación instalada, toca configurar el acceso mediante Nginx. Para ello deberemos de crear el fichero de configuración:

nano /etc/nginx/sites-enabled/wallabag.conf

Y dentro del fichero añadimos lo siguiente:

server {
    listen       80;
    server_name  wallabag.example.com;

    access_log  /var/log/nginx/wallabag.access.log;
    error_log   /var/log/nginx/wallabag.error.log;

    root /var/www/html/wallabag/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }

    # Pass PHP Scripts To FastCGI Server
    location ~ ^/app\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        include fastcgi_params;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }
}

Guardamos y comprobamos la configuración de Nginx:

nginx -t

Y reiniciamos Nginx:

systemctl restart nginx

Configuración de SSL con Let's Encrypt

El siguiente paso es configurar el certificado SSL, para ello usaremos Certbot y deberéis de seguir este otro tutorial:

Cómo utilizar Certbot para configurar un SSL de Let’s Encrypt en GNU/Linux
Certbot es una maravillosa herramienta que puedes utilizar para generar un certificado SSL con Let’s Encrypt e instalarlo y configurar automáticamente en tu servidor web.

Accedemos a la interfaz web

Con todos estos pasos podremos acceder a nuestro dominio para acceder a Wallabag:

La primera página que nos mostrará sin contenido, será el siguiente donde nos dará mucha información sobre como importar datos, como configurar la aplicación, primeros pasos, etc.

Cuando añadamos un artículo, lo veremos de la siguiente forma:

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación