Wallabag te installeren op Ubuntu 18.04 LTS

Wallabag is een read it later soort dienst. Je kunt er webpagina’s mee opslaan, zodat je ze later in je eigen tempo kunt lezen. Er zijn veel diensten waarmee je dat kunt doen, zoals Pocket, Instapaper, enz. maar een dienst laten installeren op een server die je bezit is voordelig. Ten eerste zal de dienst niet failliet gaan en de links meenemen. En je krijgt de mogelijkheid je surfgegevens privé te houden.

Deze handleiding behandelt hoe je Wallabag kunt installeren en instellen op een server die draait op Ubuntu 18.04 en hoger. Het behandelt ook hoe je Nginx, MariaDB, Git, Postfix, Composer en PHP instelt, die allemaal nodig zijn om Wallabag te laten draaien.

Vereisten

Je hebt het volgende nodig voordat je verder gaat met onze handleiding.

  • Een Ubuntu 18.04 gebaseerde server met een niet-root gebruiker met sudo privileges.

  • Je hebt ook het programma Make nodig. Om het te installeren gebruik je gewoon het volgende commando

    $ sudo apt install make
    

Installeer git

De eerste stap is Git te installeren, dat we later zullen gebruiken om de wallabag installatiebestanden uit zijn git repository te kopiëren. Git wordt tegenwoordig meestal geïnstalleerd op de meeste webservers. Is dat niet het geval, ga dan verder met de volgende commando's.

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

Installeer Nginx

$ sudo apt install nginx 

Als je Ubuntu's firewall gebruikt, voeg dan de volgende regels aan de lijst toe.

$ sudo ufw allow "Nginx HTTP" 

Controleer ook de status.

$ sudo ufw status 

Je zou iets als dit moeten zien

Status: active

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

Probeer het IP adres van je server in de browser te openen. Je zou de volgende standaard Nginx pagina moeten zien, die bevestigt dat Nginx met succes geïnstalleerd werd.

Nginx welkomstpagina

Installeer MariaDB

MariaDB is een drop-in vervanger voor MySQL, wat betekent dat de commando's om MariaDB te draaien en te bedienen dezelfde zijn als die voor MySQL. Om MariaDB te installeren voer je de volgende commando's uit

$ sudo apt install mariadb-server 

Voer het volgende commando uit om standaard instellingen uit te voeren, zoals het geven van een root wachtwoord, het verwijderen van anonieme gebruikers, het op afstand verbieden van root login en het laten vallen van testtabellen. Druk op ja voor alles en stel een root wachtwoord in.

$ sudo mysql_secure_installation 

Er is een voorbehoud bij het instellen van het root wachtwoord. MariaDB staat standaard systeem root gebruikers toe in te loggen in MariaDB zonder een wachtwoord. Maar als je een toepassing van derden gaat gebruiken om via root toegang te krijgen, is een wachtwoord een must, anders zullen apps als PHPMyAdmin falen. Hiervoor moet je de plugin-gebaseerde authenticatie uitschakelen, die op MariaDB de standaard optie is.

Om plugin authenticatie uit te schakelen en het root wachtwoord te herstellen, ga je eerst naar de MySQL prompt met het volgende commando.

$ sudo mysql -u root 

Voer nu de volgende commando's in om de plugin authenticatie uit te schakelen.

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

Herstart hierna je MariaDB dienst.

$ sudo systemctl restart mariadb.service 

Dat is het. De volgende keer dat je op MySQL wilt inloggen, gebruik je het volgende commando

$ sudo mysql -u root -p 

En je zult gevraagd worden om je root wachtwoord dat je aanvankelijk ingesteld had.

Configureer MariaDB voor Wallabag

Nu moeten we een databank instellen om te gebruiken voor de wallabag toepassing. Om dat te doen log je in op de prompt van MySQL. We nemen aan dat je de standaard authenticatie methode van MariaDB gebruikt (dus zonder root wachtwoord te gebruiken) voor de rest van de handleiding.

$ sudo mysql -u root 

Eenmaal op de prompt voer je de volgende commando's in die een databank met de naam wallabag en een databank gebruiker met de naam wallabaguser zullen instellen en hem toegang tot de databank zullen verlenen.

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

Installeer PHP en composer

Nu onze server draait, is het tijd om PHP en Composer te installeren. Omdat we Nginx gebruiken, moeten we het PHP-FPM pakket installeren. Samen met dit pakket hebben we verschillende andere PHP uitbreidingen nodig, zoals mbstring, mysql, gd, bc-math, curl, zip en 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

Dat was het voor nu. We komen later bij het configureer gedeelte van PHP en composer. Laten we naar de volgende stap gaan.

Configureer Nginx

Het is tijd om onze Nginx installatie te configureren voor we verder gaan met de eigenlijke installatie. Ervan uitgaande dat de domeinnaam die je voor wallabag gebruikt example.com is, maak je een directory aan waar je je installatie zult hosten. Wallabag zal in de html directory geïnstalleerd worden.

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

Ken vervolgens eigendom van de directory toe aan de www-data die door Nginx gebruikt wordt.

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

Zorg ervoor dat de juiste permissies zijn ingesteld.

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

Maak vervolgens een virtuele host voor de site.

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

Plak de volgende configuratie die met wallabag werkt.

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;
}

Sla het bestand op door op Ctrl + X te drukken en Y in te voeren als daarom gevraagd wordt. Vervolgens moeten we deze configuratie inschakelen. Maak hiervoor een link van het naar de directory sites-enabled.

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

Je kunt te maken krijgen met een memory bucket probleem dat ontstaat door extra servernamen. Om dat te verhelpen, open je het bestand nginx.conf

$ sudo nano /etc/nginx/nginx.conf 

Zoek de server_names_hash_bucket_size richtlijn en verwijder het # symbool om de regel te uncommenten:

server_names_hash_bucket_size 64; 

Sla het bestand op. Controleer vervolgens of er geen fouten in de Nginx configuraties staan.

$ sudo nginx -t 

Als er geen problemen zijn, herstart dan Nginx om de nieuwe veranderingen in te schakelen.

$ sudo systemctl restart nginx 

Installeer Wallabag

Kloon eerst wallabag van zijn GitHub repository. Omdat we de rechten van de html map aan de gebruiker www-data hebben gegeven, zullen we daarnaar moeten overschakelen om de installatie uit te voeren.

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

Dit zal de wallabag installatiebestanden naar de html map kopiëren. Installeer Wallabag met het make commando.

$ cd html
$ make install

Tijdens de installatie worden je verschillende vragen gesteld.

Als je gebruik wilt maken van http, voer in http://example.com in plaats daarvan wanneer om de Domeinnaam wordt gevraagd en sla het HTTPS gedeelte van de uitleg over.

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 

Je wordt ook gevraagd om de SMTP gegevens voor het ontvangen van mails over vergeten wachtwoord of twee-factor authenticatie. Als je een SMTP dienst van een derde partij wilt gebruiken, zoals Mailgun of Sendgrid, kun je de resterende waarden invullen of anders gewoonEnter erdoor drukken.Enter no tegen de parameter fosuser_registration in als je niet wilt dat iemand zich op je site registreert. Verander ook de waarde van de secret parameter. Als je grote gegevens te importeren hebt, installeer dan RabbitMQ of Redis en voer de waarden in als daarom gevraagd wordt.

Als je gevraagd wordt of je je bestaande database wilt resetten, druk je op Enter om de standaard optie (no) te gebruiken. Je wordt ook gevraagd een Admin gebruiker aan te maken.

Schakel terug naar je standaard Ubuntu gebruikerslogin als je klaar bent.

$ exit

SMTP configureren

Als je een basis SMTP server wilt opzetten en geen gebruik wilt maken van SMTP diensten van derden, installeer dan Mailutils.

$ sudo apt install mailutils

Tijdens de installatie vraagt het je een configuratietype voor Postfix te kiezen. Kies Internet Site en ga verder. Voer example.com in wanneer je om het veld System mail name gevraagd wordt. Dat is het.

Configureer HTTPS

We zullen Let's Encrypt gebruiken om HTTPS in te stellen voor onze wallabag installatie. Voeg de volgende repository toe voor het Certbot gereedschap.

$ sudo add-apt-repository ppa:certbot/certbot

Installeer het Certbot Nginx pakket uit de repository.

$ sudo apt install python-certbot-nginx

Verkrijg het certificaat voor je domein example.com.

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

Als dit de eerste keer is dat je met het Certbot programma werkt, wordt je gevraagd een e-mail op te geven en akkoord te gaan met de gebruiksvoorwaarden. Je wordt ook gevraagd of je je e-mail met EFF(Electronic Frontier Foundation) wilt delen. Kies N als je niet wilt dat EFF je e-mailt over hun nieuws en campagnes.

Als dat gelukt is, vraagt Certbot je hoe je je HTTPS instellingen wilt configureren.

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):

Kies 2 omdat we willen dat alle verzoeken naar je domein naar https worden omgeleid.

Dat is het. Je HTTPS domein is live. Certbot vernieuwt je domein automatisch na elke 90 dagen. Om het vernieuwingsproces te testen, doe je een proefversie.

$ sudo certbot renew --dry-run

Als je geen fouten ziet, betekent dat dat alles perfect is.

Configureer Wallabag

Nu we wallabag hebben ingesteld, open je je wallabag domein. Je zou het volgende scherm moeten zien.

Wallabag Inloggen

Voer de credentials in die je koos tijdens het make proces hierboven. Na het inloggen zou je het volgende scherm moeten zien.

Wallabag dashboard

Je moet twee-factor authenticatie inschakelen. Klik daarvoor op de knop Config aan de linkerkant en kies de tab USER INFORMATION in het volgende scherm. Zet het vinkje Two-factor authentication aan om het in te schakelen.

Wallabag instellingen

Je kunt je gegevens importeren uit Pockets, Instapaper, Pinboard en bladwijzers uit Firefox en Chrome gebaseerde browsers.

Wallabag voorziet je van een veelheid aan apps voor elke browser, mobiele telefoon of Ebook reader waarmee je links kunt toevoegen. En als niets anders je bevalt, kun je zelfs een Bookmarklet gebruiken, waarvan je de details kunt bekijken in de How to sectie in je instellingen.

Hoe gebruik je Wallabag?

Wallabag opwaarderen

Om Wallabag te upgraden naar de nieuwste versie, voer je de volgende commando's uit.

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

Dat was het voor deze handleiding. Nu kun je artikelen van je server opslaan en lezen zonder de privacy van je gegevens in gevaar te brengen.