Hoe Plausible Analytics te installeren op Ubuntu 22.04

Introductie

Plausible Analytics is een open-source, zelf-gehoste webanalyse-applicatie geschreven in Elixir die zich richt op eenvoud en privacy. Het slaat gegevens over de bezoekers van uw website op in PostgreSQL- en ClickHouse-databases.

In deze zelfstudie installeert u Plausible met behulp van Docker Compose, vervolgens installeert u Nginx om op te treden als een omgekeerde proxy voor de Plausible-app. Ten slotte schakelt u veilige HTTPS-verbindingen in door Certbot te gebruiken om SSL-certificaten van de Let’s Encrypt Certificate Authority te downloaden en configureren.

Vereisten

Om deze zelfstudie te voltooien, heeft u eerst het volgende nodig:

Opmerking: Deze voorbereidende stappen kunnen worden overgeslagen als u de One-Click Docker Image van DigitalOcean gebruikt. Deze image heeft Docker, Docker Compose en UFW al geïnstalleerd en geconfigureerd.

Start een nieuwe Docker-image in de regio van uw keuze, log vervolgens in als de root-gebruiker en ga verder met de tutorial. Optioneel kunt u de sudo-delen van alle opdrachten weglaten, maar dit is niet nodig.

Tenslotte, om SSL in te schakelen, heeft u een domeinnaam nodig die naar het openbare IP-adres van uw server wijst. Dit zou zoiets moeten zijn als example.com of plausible.example.com, bijvoorbeeld. Als u DigitalOcean gebruikt, raadpleeg dan onze DNS Quickstart voor informatie over het maken van domeinresources in ons controlepaneel.

Wanneer je aan alle voorwaarden hebt voldaan, ga dan naar Stap 1, waar je de Plausible software zult downloaden en starten.

Stap 1 – Plausible Analytics installeren met Docker Compose

Plausible heeft een Git-opslagplaats gemaakt met alle configuratiebestanden die nodig zijn om de software zelf te hosten. Je eerste stap zal zijn om deze repository te klonen naar je server, twee configuratiebestanden bij te werken, en vervolgens de Plausible app- en databasecontainers te starten.

Log nu in op je server.

Gebruik eerst het cd-commando om naar de /opt-directory te navigeren:

  1. cd /opt

Gebruik vervolgens het git-commando om de repo van GitHub te klonen naar een nieuwe directory binnen /opt genaamd plausible:

  1. sudo git clone https://github.com/plausible/hosting plausible

Dit zal alle benodigde configuratiebestanden naar /opt/plausible halen. Ga naar de zojuist gecreëerde directory:

  1. cd plausible

Het eerste bestand dat we moeten bewerken is plausible-conf.env, een bestand met een paar configuratievariabelen die we moeten instellen.

Voordat je het bestand opent om het te bewerken, genereer een nieuwe willekeurige hash:

  1. openssl rand 64 | base64 -w 0 ; echo

Dit gebruikt het openssl-commando om 64 willekeurige karakters te genereren, en het base64-commando om ze in base64 te encoderen. Kopieer de uitvoer naar je klembord, en open vervolgens het configuratiebestand:

  1. sudo nano plausible-conf.env

Het bestand bevat vijf variabelen die je moet invullen:

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

Vul het e-mailadres, gebruikersnaam, wachtwoord en basis-URL in, en plak vervolgens de willekeurige tekens die je hebt gegenereerd met openssl.

Opmerking:Het wachtwoord dat je hier opgeeft moet minstens zes tekens lang zijn. Als je een kaal IP-adres gebruikt en geen domeinnaam, zorg er dan voor dat je het voorafgaand aan http:// plaatst.

Sla het bestand op (CTRL+O gevolgd door ENTER in nano) en sluit de editor af (CTRL+X).

Je kunt meer configuratieopties aan dit bestand toevoegen, maar deze minimale set zorgt ervoor dat je aan de slag kunt. Meer informatie over het configureren van Plausible via plausible-conf.env is te vinden in de officiële zelfhostingdocumentatie van Plausible Analytics.

Nu moet je het docker-compose.yml-bestand bijwerken. Dit bestand wordt gebruikt door het docker-compose-commando om meerdere Docker-containers te configureren en te starten. We moeten één optie in dit bestand wijzigen: het IP-adres waaraan Plausible is gebonden.

  1. sudo nano docker-compose.yml

Zoek het gedeelte dat de Plausible-container definieert. Het zal beginnen met plausible:. Zoek in dat gedeelte de definitie van ports: en werk deze bij naar het volgende:

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

Dit zorgt ervoor dat Plausible alleen luistert op de localhost-interface en niet openbaar toegankelijk is. Ook al heb je een UFW-firewall ingesteld, vanwege enkele eigenaardigheden in hoe Docker-netwerken werken, zou jouw Plausible-container toegankelijk zijn voor het publiek op poort 8000 als je deze stap niet zou nemen, en we willen alleen dat het toegankelijk is via de Nginx-proxy die je in de volgende stap zult instellen.

Sla het docker-compose.yml-bestand op en sluit het, gebruik vervolgens docker-compose om de containers te downloaden, configureren en starten:

  1. sudo docker compose up --detach

De --detach-vlag vertelt docker-compose om de containers in de achtergrond te maken, losgekoppeld van onze terminalsessie:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

De app-container en al zijn ondersteunende mail- en databasecontainers moeten nu draaien. Je kunt dit verifiëren door de homepage van jouw nieuwe Plausible-container die op localhost draait op te halen met het curl-commando:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

Als er wat HTML naar jouw terminal wordt uitvoerd, weet je dat de server actief is.

Vervolgens zullen we Nginx opzetten om Plausible van localhost:8000 naar het publiek te omgekeerde proxy.

Stap 2 — Nginx installeren en configureren

Het plaatsen van een webserver zoals Nginx voor je Elixir-server kan de prestaties verbeteren door caching, compressie en het serveren van statische bestanden over te dragen aan een efficiënter proces. We gaan Nginx installeren en configureren om verzoeken naar Plausible om te leiden, wat betekent dat het de verzoeken van je gebruikers naar Plausible zal afhandelen en weer terug.

Als eerste vernieuw je je pakketlijst en installeer je Nginx met apt:

  1. sudo apt update
  2. sudo apt install nginx

Sta openbaar verkeer naar poorten 80 en 443 (HTTP en HTTPS) toe met het UFW-toepassingsprofiel “Nginx Full”:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

Vervolgens open je een nieuwe Nginx-configuratiebestand in de map /etc/nginx/sites-available. We noemen die van ons plausible.conf, maar je kunt een andere naam gebruiken:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

Plak het volgende in het nieuwe configuratiebestand, zorg ervoor dat je je_domein_hier vervangt door het domein dat je hebt geconfigureerd om naar je Plausible-server te wijzen. Dit zou iets als plausible.example.com moeten zijn, bijvoorbeeld:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Deze configuratie is momenteel alleen voor HTTP, omdat we Certbot het instellen van SSL in de volgende stap laten doen. De rest van de configuratie stelt logginglocaties in en stuurt vervolgens al het verkeer door naar http://localhost:8000, de Plausible-instantie die we in de vorige stap hebben gestart.

Sla het bestand op en sluit het af, en activeer de configuratie door het te linken naar /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

Gebruik nginx -t om te controleren of de syntaxis van het configuratiebestand correct is:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

En tot slot, herlaad de nginx-service om de nieuwe configuratie toe te passen:

  1. sudo systemctl reload nginx

Je Plausible-site moet nu beschikbaar zijn op gewoon HTTP. Laad http://je_domein_hier en het zal er zo uitzien:

Nu je site actief is via HTTP, is het tijd om de verbinding te beveiligen met Certbot en Let’s Encrypt-certificaten.

Stap 3 — Certbot installeren en SSL-certificaten instellen

Dankzij Certbot en de gratis certificaatautoriteit van Let’s Encrypt duurt het toevoegen van SSL-encryptie aan onze Plausible-app slechts twee commando’s.

Installeer eerst Certbot en de Nginx-plugin:

  1. sudo apt install certbot python3-certbot-nginx

Vervolgens voer je certbot uit in de modus --nginx en geef je hetzelfde domein op dat je hebt gebruikt in de Nginx server_name-configuratie:

  1. sudo certbot --nginx -d your_domain_here

Je wordt gevraagd om akkoord te gaan met de voorwaarden van Let’s Encrypt en om een e-mailadres in te voeren.

Daarna wordt gevraagd of je al het HTTP-verkeer naar HTTPS wilt omleiden. Het is aan jou, maar dit wordt over het algemeen aanbevolen en veilig om te doen.

Daarna zal Let’s Encrypt je verzoek bevestigen en Certbot zal je certificaat downloaden:

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Certbot zal Nginx automatisch herladen om de nieuwe configuratie en certificaten op te pikken. Vernieuw je site en het zou je automatisch moeten overschakelen naar HTTPS als je de omleidingsoptie hebt gekozen.

Uw site is nu beveiligd en het is veilig om in te loggen met de standaard gebruikersgegevens die u hebt ingesteld in Stap 1. U wordt dan gevraagd om uw registratie te verifiëren, en er wordt een verificatiecode naar het adres gestuurd dat u heeft geconfigureerd.

Standaard wordt deze e-mail rechtstreeks vanaf uw server verzonden, wat problemen kan veroorzaken vanwege verschillende spampreventiemaatregelen. Als u de e-mail niet ontvangt, controleer dan uw spammap. Als het daar ook niet staat, moet u mogelijk meer geschikte SMTP-gegevens instellen in het plausible-conf.env bestand. Zie de officiële Plausible self-hosting documentatie voor details over e-mailconfiguratie.

Als u succesvol bent ingelogd, ziet u een prompt om uw eerste website in te stellen met Plausible:

U heeft met succes uw Plausible analyse software geïnstalleerd en beveiligd.

Conclusie

In deze handleiding heeft u de Plausible Analytics-app gelanceerd en de bijbehorende hulpcontainers gebruikt met behulp van Docker Compose, vervolgens een Nginx-reverse-proxy ingesteld en beveiligd met behulp van Let’s Encrypt SSL-certificaten.

U bent nu klaar om uw website in te stellen en het Plausible Analytics tracking-script toe te voegen. Raadpleeg de officiële Plausible Analytics-documentatie voor meer informatie over het gebruik van de software en het instellen van uw site.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04