Introducción
Wallabag es un software que le permite guardar páginas web para que pueda leerlas más tarde. Hay muchos servicios que te permiten hacer esto como Pocket, Instapaper, etc. Pero tener un servicio instalado en su propio servidor es beneficioso. Primero, no dejará de funcionar y romperá los enlaces con servicios de terceros y podrá mantener la privacidad de sus datos de navegación.
Este tutorial le mostrará cómo instalar y configurar Wallabag en un servidor que ejecuta Ubuntu 18.04 y posterior. También describirá cómo configurar Nginx, MariaDB, Git, Postfix, Composer y PHP que Wallabag requiere para funcionar.
Prerrequisitos
Necesitaría lo siguiente antes de continuar con nuestro tutorial.
- Un servidor basado en Ubuntu 18.04 con un usuario no root con privilegios sudo.
También necesitará la herramienta Make
Para instalarlo, simplemente use el siguiente comando:
sudo apt install make
Instalar Git
El primer paso es instalar Git, que usaremos más adelante para copiar los archivos de instalación de wallabag desde su repositorio de git. Git generalmente se instala en la mayoría de los servidores web en estos días. De lo contrario, proceda 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 está utilizando el firewall de Ubuntu, agregue las siguientes reglas a su lista:
sudo ufw allow "Nginx HTTP"
También verifique el estado:
sudo ufw status
Debería 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)
Intente acceder a la dirección IP de su servidor en el navegador. Debería ver la página predeterminada de Nginx que confirma que Nginx se ha instalado correctamente.
Instalar MariaDB
MariaDB es un reemplazo directo de MySQL, lo que significa que los comandos para ejecutar y ejecutar MariaDB son los mismos que los de MySQL. Para instalar MariaDB, ingrese los siguientes comandos:
sudo apt install mariadb-server
Hay una advertencia al establecer la contraseña de root. MariaDB de forma predeterminada permite a los usuarios raíz del sistema acceder a MariaDB sin una contraseña. Pero si va a utilizar una aplicación de terceros para iniciar sesión como root, una contraseña es imprescindible, de lo contrario, las aplicaciones como PHPMyAdmin fallarán. Para esto, la autenticación basada en complementos debe estar deshabilitada, que es la opción predeterminada en MariaDB.
Inicie sesión en el servidor MariaDB ejecutando los siguientes comandos:
sudo mysql -u root
Esto debería ingresar al servidor de la base de datos. A continuación, ejecute los siguientes comandos para deshabilitar la autenticación de complemento para el usuario root:
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
Ejecute el mysql_secure_installation
para mejorar la seguridad de la instalación de MariaDB:
sudo mysql_secure_installation
El script le pedirá que establezca la contraseña del usuario raíz, elimine al usuario anónimo, restrinja el acceso del usuario raíz a la computadora local y elimine la base de datos de prueba. Eventualmente, el script recargará las tablas de privilegios asegurando que todos los cambios entren en vigencia inmediatamente.
Todos los pasos se explican en detalle y se recomienda que responda " S " (sí) a todas las preguntas.
Luego reinicia MariaDB.
sudo systemctl restart mariadb.service
Eso es todo. La próxima vez que desee iniciar sesión en MySQL, use el siguiente comando
sudo mysql -u root -p
Y se le pedirá la contraseña de root que configuró inicialmente.
Configurar MariaDB para Wallabag
Ahora necesitamos configurar una base de datos para usar con la aplicación wallabag. Para hacer esto, acceda al indicador de MySQL:
sudo mysql -u root -p
Una vez que se le solicite, ingrese los siguientes comandos que configurarán una base de datos llamada wallabag y un usuario de la base de datos llamado wallabaguser y le otorgará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 funcionamiento, es hora de instalar PHP y Composer. Como usamos Nginx, necesitamos instalar el paquete PHP-FPM. Junto con él, necesitaremos muchas otras extensiones 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
Pasemos al siguiente paso.
Configurar Nginx
Es hora de configurar nuestra instalación de Nginx. Suponiendo que el nombre de dominio que está utilizando para wallabag es example.com
(reemplace example.com con su nombre de dominio en todos los pasos), cree un directorio donde alojará su instalación. Wallabag se instalará en el directorio html.
sudo mkdir -p /var/www/example.com/html
A continuación, asigne la propiedad del directorio a los datos www utilizados por Nginx.
sudo chown -R www-data:www-data /var/www/example.com/html
Asegúrese de que estén configurados los permisos correctos.
sudo chmod -R 755 /var/www/example.com
A continuación, cree un host virtual para el sitio.
sudo nano /etc/nginx/sites-available/example.com
Pegue 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;
}
Guarde el archivo presionando Ctrl + X y escribiendo Y cuando se le solicite.
A continuación, necesitamos habilitar esta configuración. Para ello, cree un enlace desde él al directorio habilitado para el sitio.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Puede haber un problema de depósito de memoria debido a nombres de servidor adicionales. Para solucionar esto, abra el archivo nginx.conf
sudo nano /etc/nginx/nginx.conf
Busque la server_names_hash_bucket_size
y elimine el #
para descomentar la línea:
server_names_hash_bucket_size 64;
Guarda el archivo. Por lo tanto, asegúrese de que no haya errores en las configuraciones de Nginx:
sudo nginx -t
Si no hay problemas, reinicie Nginx para habilitar los nuevos cambios.
sudo systemctl restart nginx
Instalar Wallabag
Primero, clone wallabag de su repositorio de GitHub. Dado que hemos concedido los permisos de la carpeta html al usuario www-data, tendremos que cambiar a ella para realizar 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 al directorio html. Instale Wallabag usando el comando make.
cd html
make install
Se le harán varias preguntas durante la instalación.
Si desea utilizar HTTP
, ingrese http://example.com
cuando se le solicite el nombre de dominio y omita 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 le solicitarán los detalles de SMTP para recibir correos electrónicos sobre la contraseña olvidada o la autenticación de dos factores. Si desea utilizar un servicio SMTP de terceros como Mailgun o Sendgrid, puede ingresar los valores necesarios o simplemente presionar Enter para ir a la siguiente configuración. Escriba no en el fosuser_registration
si no desea que un usuario se registre en su sitio. Además, cambie el valor del parámetro secret
Si tiene grandes datos para importar, instale RabbitMQ o Redis e ingrese los valores cuando se le solicite.
Cuando se le pregunte si desea restaurar la base de datos existente, presione Entrar para usar la opción predeterminada ( no
). También se le pedirá que cree un usuario administrador. Cuando termine, vuelva al inicio de sesión de usuario predeterminado de Ubuntu.
exit
Configurar SMTP
Si desea configurar un servidor SMTP básico y no utilizar servicios SMTP de terceros, instale Mailutils.
sudo apt install mailutils
Durante la instalación, se le pedirá que seleccione un tipo de configuración para Postfix. Seleccione Internet Site
y continúe. Ingrese example.com
cuando se le solicite el campo Correo del sistema.
Configurar HTTPS
Usaremos Let's Encrypt para configurar HTTPS para nuestra instalación wallabag. Agregue el siguiente repositorio para la herramienta Certbot.
sudo add-apt-repository ppa:certbot/certbot
Instale el paquete Certbot Nginx desde el repositorio.
sudo apt install python-certbot-nginx
Obtenga el certificado para su dominio example.com.
sudo certbot --nginx -d example.com -d www.example.com
Si es la primera vez que utiliza la herramienta Certbot, se le pedirá que proporcione un correo electrónico y acepte los términos de servicio. También se le preguntará si desea que su correo electrónico se comparta con Electronic Frontier Foundation (EFF). Elija N si no desea que EFF le envíe un correo electrónico sobre sus noticias y campañas.
Si tiene éxito, Certbot le preguntará cómo desea configurar los 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):
Elija 2 ya que queremos que todas las solicitudes a su dominio se redirijan a través de HTTPS.
Eso es todo. Su dominio HTTPS está activo. Certbot renovará automáticamente su dominio cada 90 días. Para probar el proceso de renovación, realice un ensayo.
sudo certbot renew --dry-run
Si no ve errores, significa que todo es perfecto.
Configurar Wallabag
Ahora que tenemos Wallabag instalado, abra su navegador y conéctese a su dominio. Debería ver la pantalla de inicio de sesión de Wallabag.
Introduzca las credenciales que ha elegido durante el make
proceso.
La autenticación de dos factores debe estar habilitada. Para hacer esto, haga clic en el Config
a la izquierda y seleccione la pestaña USER INFORMATION
Habilite la Two-factor authentication
.
Puede importar sus datos desde Pockets, Instapaper, Pinboard y marcadores desde navegadores basados en Firefox y Chrome.
Wallabag te ofrece una multitud de aplicaciones para cada navegador, dispositivo móvil o lector de libros electrónicos con las que puedes agregar enlaces.
Actualizar Wallabag
Para actualizar Wallabag a la última versión, simplemente ejecute los siguientes comandos:
sudo -u www-data /bin/bash
cd /var/www/example.com/html
make update
Conclusión
Eso es todo por este tutorial que hemos instalado Wallabag en Ubuntu 18.04 LTS. Ahora puede guardar y leer artículos de su servidor sin comprometer la privacidad de sus datos.