Búsqueda de sitios web

Cómo instalar Wallabag en Ubuntu 18.04 LTS


En esta página

  1. Requisitos previos
  2. Instalar git
  3. Instalar Nginx
  4. Instalar MariaDB
  5. Configurar MariaDB para Wallabag
  6. Instalar PHP y Composer
  7. Configurar Nginx
  8. Instalar Wallabag
  9. Configurar SMTP
  10. Configurar HTTPS
  11. Configurar Wallabag
  12. Actualizar Wallabag

Wallabag es un tipo de servicio de lectura posterior. Le permite guardar páginas web para que pueda leerlas más tarde a su propio ritmo. Hay muchos servicios que le permiten hacerlo, como Pocket, Instapaper, etc., pero es beneficioso tener un servicio instalado en un servidor de su propiedad. Por un lado, no cerrará y se llevará consigo los enlaces. Y puedes mantener la privacidad de tus datos de navegación.

Este tutorial cubrirá cómo instalar y configurar Wallabag en un servidor que se ejecuta en Ubuntu 18.04 y superior. También cubrirá cómo configurar Nginx, MariaDB, Git, Postfix, Composer y PHP, todos los cuales son requeridos por Wallabag para funcionar.

requisitos previos

Necesitará lo siguiente antes de continuar con nuestro tutorial.

  • An Ubuntu 18.04 based server having a non-root user with sudo privileges.

  • You will also need the Make tool. To install it, just use the following command

    $ 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 viene instalado generalmente en estos días en la mayoría de los servidores web. Si no es así, proceda con los siguientes comandos.

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

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" 

Compruebe el estado también.

$ 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 siguiente página predeterminada de Nginx que confirma que Nginx se instaló correctamente.

Instalar MariaDB

MariaDB es un reemplazo directo de MySQL, lo que significa que los comandos para ejecutar y operar MariaDB son los mismos que para MySQL. Para instalar MariaDB emita los siguientes comandos

$ sudo apt install mariadb-server 

Ejecute el siguiente comando para realizar la configuración predeterminada, como proporcionar una contraseña de root, eliminar usuarios anónimos, prohibir el inicio de sesión de root de forma remota y descartar tablas de prueba. Presione sí para todo y configure una contraseña de root.

$ sudo mysql_secure_installation 

Hay una advertencia con la configuración de la contraseña de root. MariaDB por defecto permite a los usuarios raíz del sistema iniciar sesión en MariaDB sin una contraseña. Pero si va a utilizar una aplicación de terceros para acceder a través de la raíz, una contraseña es imprescindible, de lo contrario, las aplicaciones como PHPMyAdmin fallarán. Para esto, debe deshabilitar la autenticación basada en complementos, que es la opción predeterminada en MariaDB.

Para deshabilitar la autenticación del complemento y restaurar la contraseña de root, ingrese primero el indicador de MySQL usando el siguiente comando.

$ sudo mysql -u root 

Ahora ingrese los siguientes comandos para deshabilitar la autenticación del complemento.

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

Después de esto, reinicie su servicio MariaDB.

$ sudo systemctl restart mariadb.service 

Eso es. La próxima vez que desee iniciar sesión en MySQL, use el siguiente comando

$ sudo mysql -u root -p 

Y se le pedirá su contraseña de root que había establecido inicialmente.

Configurar MariaDB para Wallabag

Ahora necesitamos configurar una base de datos para usar con la aplicación wallabag. Para hacer eso, inicie sesión en el indicador de MySQL. Asumiremos que está utilizando el método de autenticación predeterminado de MariaDB (es decir, sin usar la contraseña de root) para el resto del tutorial.

$ sudo mysql -u root 

Una vez en el indicador, ingrese los siguientes comandos que configurarán una base de datos llamada wallabag y un usuario de base de datos llamado wallabaguser y le otorgarán acceso a la base de datos.

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

Instalar PHP y compositor

Ahora que nuestro servidor está funcionando, es hora de instalar PHP y Composer. Como estamos usando Nginx, necesitamos instalar el paquete PHP-FPM. Junto con él, necesitaremos varias 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. Llegaremos a la parte de configuración de PHP y Composer más adelante. Pasemos al siguiente paso.

Configurar Nginx

Es hora de configurar nuestra instalación de Nginx antes de continuar con la instalación real. Suponiendo que el nombre de dominio que está utilizando para wallabag es example.com, 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 que utiliza Nginx.

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

Asegúrese de que se hayan establecido 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 e ingresando Y cuando se le solicite. A continuación, debemos habilitar esta configuración. Para esto, cree un enlace desde él al directorio habilitado para sitios.

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

Es posible que enfrente un problema de depósito de memoria que surge debido a nombres de servidores adicionales. Para arreglar eso, abra el archivo nginx.conf

$ sudo nano /etc/nginx/nginx.conf 

Busque la directiva server_names_hash_bucket_size y elimine el símbolo # para descomentar la línea:

server_names_hash_bucket_size 64; 

Guarda el archivo. A continuación, asegúrese de que no haya errores en las configuraciones de Nginx.

$ sudo nginx -t 

Si no hay ningún problema, reinicie Nginx para habilitar los nuevos cambios.

$ sudo systemctl restart nginx 

Instalar Wallbag

Primero, clone wallabag desde su repositorio de GitHub. Dado que otorgamos los permisos de la carpeta html al usuario www-data, necesitaremos cambiar a ella 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. 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 en su lugar 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 relacionados con el olvido de la contraseña o la autenticación de dos factores. Si desea utilizar un servicio SMTP de terceros como Mailgun o Sendgrid, puede completar los valores restantes o simplemente presionar Intro a través de ellos. Introduzca no en el parámetro fosuser_registration si no desea que nadie se registre en su sitio. Además, cambie el valor del parámetro secret. Si tiene muchos datos para importar, instale RabbitMQ o Redis e ingrese los valores cuando se le solicite.

Cuando se le pregunte si desea restablecer su base de datos existente, presione Entrar para usar la opción predeterminada (no). También se le pedirá que cree un usuario administrador.

Vuelva a su inicio de sesión de usuario predeterminado de Ubuntu cuando haya terminado.

$ 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, le pedirá que seleccione un tipo de configuración para Postfix. Seleccione Sitio de Internet y continúe. Ingrese example.com cuando se le solicite el campo de nombre de correo del sistema. Eso es.

Configurar HTTPS

Usaremos Lets Encrypt para configurar HTTPS para nuestra instalación de 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 ejemplo.com.

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

Si es la primera vez que usa la herramienta Certbot, se le pedirá que proporcione un correo electrónico y que acepte los términos del servicio. También se le preguntará si desea que su correo electrónico se comparta con EFF (Electronic Frontier Foundation). Elija N si no desea que EFF le envíe un correo electrónico con sus noticias y campañas.

Si eso tiene éxito, Certbot le preguntará cómo desea configurar sus ajustes de 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 https.

Eso es. Su dominio HTTPS está activo. Certbot renovará automáticamente su dominio cada 90 días. Para probar el proceso de renovación, haga un ensayo.

$ sudo certbot renew --dry-run

Si no ve ningún error, eso significa que todo es perfecto.

Configurar Wallbag

Ahora que hemos configurado wallabag, abra su dominio wallabag. Debería ver la siguiente pantalla.

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

Debe habilitar la autenticación de dos factores. Para hacer eso, haga clic en el botón Configurar a la izquierda y seleccione la pestaña INFORMACIÓN DEL USUARIO en la siguiente pantalla. Habilite la marca de verificación Autenticación de dos factores para habilitarla.

Puede importar sus datos de Pockets, Instapaper, Pinboard y marcadores de navegadores basados en Firefox y Chrome.

Wallabag le ofrece una multitud de aplicaciones para cada navegador, dispositivo móvil o lector de libros electrónicos con las que puede agregar enlaces. Y si nada más te apetece, puedes incluso usar un Bookmarklet, cuyos detalles puedes acceder desde la sección Cómo en tu configuración.

Actualizar Wallbag

Para actualizar Wallabag a la última versión, simplemente emita los siguientes comandos.

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

Eso es todo por este tutorial. Ahora puede guardar y leer artículos desde su servidor sin comprometer la privacidad de sus datos.

Artículos relacionados: