Introduzione

Wallabag è un software che ti consente di salvare pagine Web in modo da poterle leggere in seguito. Esistono molti servizi che ti consentono di farlo come Pocket, Instapaper, ecc. Ma avere un servizio installato su un server di tua proprietà è vantaggioso. Per prima cosa, non cesserà di funzionare e abbatterà i collegamenti con servizi di terzi e puoi mantenere privati ​​i tuoi dati di navigazione.

Questo tutorial illustrerà come installare e configurare Wallabag su un server che esegue Ubuntu 18.04 e versioni successive. Descriverà inoltre come impostare Nginx, MariaDB, Git, Postfix, Composer e PHP che sono richiesti da Wallabag per funzionare.

Prerequisiti

Avresti bisogno di quanto segue prima di procedere con il nostro tutorial.

  • Un server basato su Ubuntu 18.04 con un utente non root con privilegi sudo.

Sarà inoltre necessario lo strumento Make. Per installarlo, basta usare il seguente comando:

sudo apt install make

Installare Git

Il primo passo è installare Git che useremo in seguito per copiare i file di installazione di wallabag dal suo repository git. Git viene installato di solito in questi giorni sulla maggior parte dei server web. In caso contrario, procedere con i seguenti comandi:

sudo apt install git
git config --global user.name "Your name"
git config --global user.email "[email protected]" 

Installare Nginx

sudo apt install nginx 

Se stai usando il firewall di Ubuntu, aggiungi le seguenti regole al suo elenco:

sudo ufw allow "Nginx HTTP" 

Controlla anche lo stato:

sudo ufw status 

Dovresti vedere qualcosa del genere:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Prova ad accedere all'indirizzo IP del tuo server nel browser. Dovresti vedere la pagina Nginx predefinita che conferma che Nginx è stato installato con successo.

Installa MariaDB

MariaDB è un sostituto drop-in per MySQL, il che significa che i comandi per eseguire e far funzionare MariaDB sono gli stessi di quelli per MySQL. Per installare MariaDB, immettere i seguenti comandi:

sudo apt install mariadb-server 

C'è un'avvertenza con l'impostazione della password di root. MariaDB per impostazione predefinita consente agli utenti root del sistema di accedere a MariaDB senza password. Ma se hai intenzione di utilizzare un'applicazione di terze parti per accedere tramite root, una password è d'obbligo, altrimenti le app come PHPMyAdmin falliranno. Per questo, è necessario disabilitare l'autenticazione basata su plug-in, che è l'opzione predefinita su MariaDB.

Accedere al server MariaDB eseguendo i comandi seguenti:

sudo mysql -u root

Questo dovrebbe entrare nel server di database. Successivamente, esegui i comandi seguenti per disabilitare l'autenticazione del plug-in per l'utente root:

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

Esegui il comando mysql_secure_installation per migliorare la sicurezza dell'installazione di MariaDB:

sudo mysql_secure_installation

Lo script richiederà di impostare la password dell'utente root, rimuovere l'utente anonimo, limitare l'accesso dell'utente root al computer locale e rimuovere il database di test. Alla fine lo script ricaricherà le tabelle dei privilegi assicurando che tutte le modifiche abbiano effetto immediato.

Tutti i passaggi sono spiegati in dettaglio ed è consigliabile rispondere a "Y" (sì) a tutte le domande.

Successivamente riavviare MariaDB.

sudo systemctl restart mariadb.service 

Questo è tutto. La prossima volta che si desidera accedere a MySQL, utilizzare il comando seguente

sudo mysql -u root -p 

E ti verrà chiesta la password di root che avevi impostato inizialmente.

Configura MariaDB per Wallabag

Ora dobbiamo impostare un database da utilizzare per l'applicazione wallabag. Per farlo accedi al prompt di MySQL:

sudo mysql -u root -p

Una volta richiesto, immettere i seguenti comandi che imposteranno un database denominato wallabag e un utente del database denominato wallabaguser e gli concederanno l'accesso al database.

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;

Installare PHP e Composer

Ora che il nostro server è attivo e funzionante, è tempo di installare PHP e Composer. Poiché stiamo usando Nginx, dobbiamo installare il pacchetto PHP-FPM. Insieme ad esso avremo bisogno di molte altre estensioni PHP come mbstring, mysql, gd, bc-math, curl, zip e 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 

Passiamo al passaggio successivo.

Configurare Nginx

È tempo di configurare la nostra installazione di Nginx. Supponendo che il nome di dominio che stai utilizzando per wallabag sia example.com (sostituire example.com con il proprio nome dominio in tutti i passaggi), crea una directory in cui ospiterai la tua installazione. Wallabag verrà installato nella directory html.

sudo mkdir -p /var/www/example.com/html 

Successivamente, assegna la proprietà della directory ai dati www utilizzati da Nginx.

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

Assicurarsi che siano impostate le autorizzazioni corrette.

sudo chmod -R 755 /var/www/example.com 

Successivamente, crea un host virtuale per il sito.

sudo nano /etc/nginx/sites-available/example.com 

Incolla la seguente configurazione che funziona 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;
}

Salvare il file premendo Ctrl + X e digitando Y quando richiesto.

Successivamente, dobbiamo abilitare questa configurazione. Per questo, creare un collegamento da esso alla directory abilitata per i siti.

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

È possibile che si verifichi un problema relativo al bucket di memoria dovuto a nomi di server aggiuntivi. Per risolvere il problema, aprire il file nginx.conf:

sudo nano /etc/nginx/nginx.conf 

Trova la direttiva server_names_hash_bucket_size  e rimuovi il simbolo # per rimuovere il commento dalla riga:

server_names_hash_bucket_size 64; 

Salva il file. Quindi, assicurarsi che non vi siano errori nelle configurazioni Nginx:

sudo nginx -t 

Se non ci sono problemi, riavvia Nginx per abilitare le nuove modifiche.

sudo systemctl restart nginx 

Installare Wallabag

Innanzitutto, clonare wallabag dal suo repository GitHub. Poiché abbiamo concesso le autorizzazioni della cartella html all'utente www-data, dovremo passare ad essa per eseguire l'installazione:

sudo -u www-data /bin/bash
cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html

Questo copierà i file di installazione di wallabag nella directory html. Installa Wallabag usando il comando make.

cd html
make install

Ti verranno poste diverse domande durante l'installazione.

Se si desidera utilizzare HTTP, immettere http://example.com quando viene richiesto il nome di dominio e saltare la parte HTTPS dell'esercitazione.

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 

Ti verranno anche richiesti i dettagli SMTP per ottenere mail riguardanti la password dimenticata o l'autenticazione a due fattori. Se si desidera utilizzare un servizio SMTP di terze parti come Mailgun o Sendgrid, è possibile inserire i valori necessari oppure premere semplicemente  Invio per passare alla configurazione successiva. Digitare no al parametro fosuser_registration se non si desidera che un utente si registri sul proprio sito. Inoltre, modifica il valore del parametro secret. Se hai dati di grandi dimensioni da importare, installa RabbitMQ o Redis e inserisci i valori quando richiesto.

Quando viene richiesto se ripristinare il database esistente, premere Invio per utilizzare l'opzione predefinita (no). Ti verrà anche chiesto di creare un utente amministratore. Al termine, torna al login utente Ubuntu predefinito.

exit

Configurare SMTP

Se si desidera configurare un server SMTP di base e non utilizzare servizi SMTP di terze parti, installare Mailutils.

sudo apt install mailutils

Durante l'installazione, ti verrà chiesto di selezionare un tipo di configurazione per Postfix. Seleziona Internet Site e procedi. Immettere example.com quando richiesto per il campo System mail di sistema.

Configurare l'HTTPS

Useremo Let's Encrypt per configurare HTTPS per la nostra installazione di wallabag. Aggiungi il seguente repository per lo strumento Certbot.

sudo add-apt-repository ppa:certbot/certbot

Installa il pacchetto Certbot Nginx dal repository.

sudo apt install python-certbot-nginx

Ottieni il certificato per il tuo dominio example.com.

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

Se è la prima volta che utilizzi lo strumento Certbot, ti verrà chiesto di fornire un'email e di accettare i termini del servizio. Ti verrà anche chiesto se desideri che la tua email sia condivisa con EFF (Electronic Frontier Foundation). Scegli N se non desideri che EFF ti invii un'email in merito alle sue notizie e alle sue campagne.

Se ciò ha esito positivo, Certbot ti chiederà come si desidera configurare le impostazioni 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):

Scegli 2 poiché vogliamo che tutte le richieste al tuo dominio vengano reindirizzate su HTTPS.

Questo è tutto. Il tuo dominio HTTPS è attivo. Certbot rinnoverà automaticamente il tuo dominio ogni 90 giorni. Per testare il processo di rinnovo, eseguire una corsa a secco.

sudo certbot renew --dry-run

Se non vedi errori, significa che tutto è perfetto.

Configurare Wallabag

Ora che abbiamo installato wallabag, apri il browser e collegati al tuo dominio. Dovresti vedere la schermata di login di wallabag.

Inserisci le credenziali che hai scelto durante il processo make.

È necessario abilitare l'autenticazione a due fattori. Per fare ciò, fai clic sul pulsante Config a sinistra e seleziona la scheda USER INFORMATION. Abilita Two-factor authentication.

Puoi importare i tuoi dati da Pockets, Instapaper, Pinboard e segnalibri da browser Firefox e basati su Chrome.

Wallabag ti offre una moltitudine di app per ogni browser, dispositivo mobile o lettore di ebook con cui puoi aggiungere collegamenti.

Aggiornare Wallabag

Per aggiornare Wallabag all'ultima versione, è sufficiente emettere i seguenti comandi:

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

Conclusione

Questo è tutto per questo tutorial abbiamo installato Wallabag su Ubuntu 18.04 LTS. Ora puoi salvare e leggere articoli dal tuo server senza compromettere la privacy dei tuoi dati.