Cómo instalar Wallabag en Ubuntu 18.04 LTS
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 eliminará los enlaces con él. 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.
- Un servidor basado en Ubuntu 18.04 que tiene un usuario no root con privilegios sudo.
- También necesitará la herramienta Crear. Para instalarlo, solo 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 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 "[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"
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 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á 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 utilizar la contraseña de root) durante 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 [email protected]; set password for [email protected]= password("yourpassword"); grant all privileges on wallabag.* to [email protected] 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 Control + X y entrando 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 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 Ingresar a través de ellos. Ingrese 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 secreto. 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 Ingresar para utilizar 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 Nombre de correo del sistema. Eso es todo.
Configurar HTTPS
Usaremos Let’s 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). Elegir norte 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):
Elegir 2 ya que queremos que todas las solicitudes a su dominio sean redirigidas a 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, haga un ensayo.
$ sudo certbot renew --dry-run
Si no ve ningún error, eso significa que todo está 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 de creación 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 mediante el cual 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.