Come installare Plausible Analytics su Ubuntu 22.04

Introduzione

Plausible Analytics è un’applicazione open source per l’analisi web auto-ospitata scritta in Elixir che si concentra sulla semplicità e sulla privacy. Memorizza i dati sui visitatori del tuo sito web nei database PostgreSQL e ClickHouse.

In questo tutorial installerai Plausible usando Docker Compose, quindi installerai Nginx per agire come reverse proxy per l’app Plausible. Infine, abiliterai connessioni HTTPS sicure utilizzando Certbot per scaricare e configurare certificati SSL dall’Autorità di Certificazione Let’s Encrypt.

Prerequisiti

Per completare questo tutorial, avrai bisogno innanzitutto di quanto segue:

Nota: Questi passaggi preliminari possono essere saltati se stai utilizzando l’Immagine Docker con un clic di DigitalOcean. Questa immagine avrà già Docker, Docker Compose e UFW installati e configurati.

Avvia una nuova immagine Docker nella regione di tua scelta, quindi accedi come utente root e procedi con il tutorial. Facoltativamente, potresti omettere le parti sudo di tutti i comandi, ma non è necessario.

Infine, per abilitare SSL avrai bisogno di un nome di dominio puntato all’indirizzo IP pubblico del tuo server. Questo potrebbe essere qualcosa come esempio.com o plausible.esempio.com, ad esempio. Se stai utilizzando DigitalOcean, consulta la nostra Guida rapida su DNS per informazioni sulla creazione di risorse di dominio nel nostro pannello di controllo.

Quando hai soddisfatto tutti i prerequisiti, procedi al Passaggio 1, dove scaricherai e avvierai il software Plausible.

Passaggio 1 – Installazione di Plausible Analytics con Docker Compose

Plausible ha creato un repository Git con tutti i file di configurazione necessari per l’auto-hosting del software. Il tuo primo passo sarà clonare questo repository sul tuo server, aggiornare due file di configurazione e poi avviare i contenitori dell’applicazione e del database di Plausible.

Accedi al tuo server ora.

Per prima cosa, utilizza il comando cd per navigare nella directory /opt:

  1. cd /opt

Poi utilizza il comando git per clonare il repository da GitHub in una nuova directory all’interno di /opt chiamata plausible:

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

Questo importerà tutti i file di configurazione necessari in /opt/plausible. Spostati nella directory appena creata:

  1. cd plausible

Il primo file che dobbiamo modificare è plausible-conf.env, un file che contiene alcune variabili di configurazione che dobbiamo impostare.

Prima di aprire il file per modificarlo, genera un nuovo hash casuale:

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

Questo utilizza il comando openssl per generare 64 caratteri casuali e il comando base64 per codificarli in base64. Copia l’output negli appunti, quindi apri il file di configurazione:

  1. sudo nano plausible-conf.env

Il file contiene cinque variabili che dovrai compilare:

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

Compila l’email, il nome utente, la password e l’URL di base, quindi incolla i caratteri casuali che hai generato con openssl.

Nota: La password che specifici qui deve essere lunga almeno sei caratteri. Se stai utilizzando un indirizzo IP nudo e non un nome di dominio, assicurati di precederlo con http://.

Salva il file (CTRL+O poi INVIO in nano) e chiudi l’editor (CTRL+X).

Esistono altre opzioni di configurazione che puoi aggiungere a questo file, ma questo insieme minimo ti permetterà di iniziare. Ulteriori informazioni sulla configurazione di Plausible tramite plausible-conf.env possono essere trovate nella documentazione ufficiale di auto-hosting di Plausible Analytics.

Ora devi aggiornare il file docker-compose.yml. Questo file è ciò che il comando docker-compose utilizza per configurare e avviare più container Docker. Dobbiamo modificare una sola opzione in questo file: l’IP a cui Plausible si collega.

  1. sudo nano docker-compose.yml

Trova la sezione che definisce il container Plausible. In quella sezione trova la definizione di ports: e aggiornala come segue:

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

Questo assicura che Plausible stia ascoltando solo sull’interfaccia localhost e non sia accessibile pubblicamente. Anche se hai configurato un firewall UFW, a causa di alcune peculiarità nel funzionamento della rete Docker, se non avessi eseguito questo passaggio il container di Plausible sarebbe accessibile al pubblico sulla porta 8000, e vogliamo che sia accessibile solo tramite il proxy Nginx che configurerai nel prossimo passaggio.

Salva e chiudi il file docker-compose.yml, quindi utilizza docker-compose per scaricare, configurare e avviare i container:

  1. sudo docker compose up --detach

Il flag --detach dice a docker-compose di creare i container in background, distaccati dalla nostra sessione terminale:

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

Il container dell’app e tutti i suoi container di supporto per la posta e il database dovrebbero ora essere in esecuzione. Puoi verificarlo utilizzando il comando curl per recuperare la homepage del tuo nuovo container Plausible in esecuzione su localhost:

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

Se viene visualizzato dell’HTML nel tuo terminale, significa che il server è attivo e in esecuzione.

Successivamente, imposteremo Nginx per fare proxy inverso di Plausible da localhost:8000 a pubblico.

Passaggio 2 — Installazione e Configurazione di Nginx

Mettere un server web come Nginx davanti al tuo server Elixir può migliorare le prestazioni scaricando la memorizzazione nella cache, la compressione e il servizio di file statici a un processo più efficiente. Installeremo Nginx e lo configureremo per fare da proxy inverso per le richieste verso Plausible, il che significa che si occuperà di gestire le richieste dai tuoi utenti a Plausible e viceversa.

Prima di tutto, aggiorna la lista dei pacchetti e quindi installa Nginx usando apt:

  1. sudo apt update
  2. sudo apt install nginx

Consenti il traffico pubblico alle porte 80 e 443 (HTTP e HTTPS) utilizzando il profilo dell’applicazione UFW “Nginx Full”:

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

Successivamente, apri un nuovo file di configurazione di Nginx nella directory /etc/nginx/sites-available. Lo chiameremo plausible.conf, ma potresti usare un nome diverso:

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

Incolla quanto segue nel nuovo file di configurazione, assicurandoti di sostituire il_tuo_dominio_qui con il dominio che hai configurato per puntare al tuo server Plausible. Questo dovrebbe essere qualcosa come plausible.example.com, ad esempio:

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

Questa configurazione è attualmente solo HTTP, poiché permetteremo a Certbot di configurare SSL nel prossimo passaggio. Il resto della configurazione imposta le posizioni del registro e quindi inoltra tutto il traffico a http://localhost:8000, l’istanza Plausible che abbiamo avviato nel passaggio precedente.

Salva e chiudi il file, quindi abilita la configurazione collegandola in /etc/nginx/sites-enabled/:

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

Utilizza nginx -t per verificare che la sintassi del file di configurazione sia corretta:

  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

E infine, ricarica il servizio nginx per caricare la nuova configurazione:

  1. sudo systemctl reload nginx

Il tuo sito Plausible dovrebbe ora essere disponibile su HTTP normale. Carica http://il_tuo_dominio_qui e avrà questo aspetto:

Ora che hai il tuo sito attivo su HTTP, è il momento di proteggere la connessione con Certbot e i certificati Let’s Encrypt.

Passaggio 3 — Installazione di Certbot e Configurazione dei Certificati SSL

Grazie a Certbot e all’autorità di certificazione gratuita Let’s Encrypt, aggiungere la crittografia SSL alla nostra app Plausible richiederà solo due comandi.

Prima, installa Certbot e il suo plugin Nginx:

  1. sudo apt install certbot python3-certbot-nginx

Successivamente, esegui certbot in modalità --nginx, e specifica lo stesso dominio che hai usato nella configurazione Nginx server_name:

  1. sudo certbot --nginx -d your_domain_here

Ti verrà chiesto di accettare i termini del servizio di Let’s Encrypt e di inserire un indirizzo email.

In seguito, ti verrà chiesto se desideri reindirizzare tutto il traffico HTTP su HTTPS. Sta a te, ma generalmente è consigliato e sicuro farlo.

Dopo di che, Let’s Encrypt confermerà la tua richiesta e Certbot scaricherà il tuo certificato:

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 ricaricherà automaticamente Nginx per prendere la nuova configurazione e i certificati. Ricarica il tuo sito e dovrebbe passare automaticamente a HTTPS se hai scelto l’opzione di reindirizzamento.

Il tuo sito è ora sicuro ed è possibile accedere con le credenziali predefinite che hai impostato nel Passaggio 1. Sarai quindi invitato a verificare la tua registrazione e ti sarà inviato un codice di verifica all’indirizzo email che hai configurato.

Per impostazione predefinita, questa email viene inviata direttamente dal tuo server, il che può causare problemi a causa di varie misure di prevenzione dello spam. Se non ricevi l’email, controlla nella cartella dello spam. Se non è nemmeno lì, potresti dover configurare dettagli SMTP più adatti nel file plausible-conf.env. Consulta la documentazione ufficiale di auto-hosting di Plausible per i dettagli sulla configurazione della posta.

Quando effettui l’accesso con successo, vedrai un prompt per configurare il tuo primo sito web con Plausible:

Hai installato e protetto con successo il software di analisi Plausible.

Conclusione

In questo tutorial, hai avviato l’applicazione Plausible Analytics e i relativi container di assistenza utilizzando Docker Compose, quindi hai configurato un proxy inverso Nginx e lo hai protetto utilizzando certificati SSL Let’s Encrypt.

Ora sei pronto per configurare il tuo sito web e aggiungere lo script di tracciamento Plausible Analytics. Consulta la documentazione ufficiale di Plausible Analytics per ulteriori informazioni sull’utilizzo del software e la configurazione del tuo sito.

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