Skip to main content

Distribuire Plausible Analytics

Questa guida spiega come distribuire Plausible Analytics in self-hosted su un server Linux (Ubuntu 24.04 LTS). Plausible è una soluzione di web analytics open source incentrata su semplicità e privacy: misurazione del traffico senza cookie né tracciamento personale, adatta a siti che vogliono statistiche rispettando la privacy dei visitatori.

Il deployment usa Docker e Docker Compose, con Nginx come reverse proxy e Let's Encrypt per HTTPS.

Ordina un Server

Per ospitare la tua istanza Plausible, HostMyServers offre diverse opzioni adatte:

Prerequisiti

  • Accesso SSH come root o utente con sudo
  • Sistema Ubuntu 24.04 LTS (o Debian / Fedora)
  • Docker e Docker Compose installati
  • Un nome di dominio (es. plausible.tuodominio.com) con record A che punta all'IP pubblico del server
  • Porte 80 (HTTP) e 443 (HTTPS) accessibili

Configurazione richiesta

ComponenteMinimoConsigliato
RAM2 GB4 GB
CPU2 core2-4 core
Storage10 GB20 GB
Rete100 Mbps1 Gbps
Docker

Se Docker non è ancora installato, segui la documentazione ufficiale Docker per Ubuntu.

Connessione al server

Connettiti via SSH al server:

ssh utente@indirizzo_ip_server

Aggiornamento del sistema

Aggiorna l'elenco dei pacchetti prima di iniziare:

sudo apt update
sudo apt upgrade -y

Configurazione ambiente Plausible

Plausible usa variabili d'ambiente per URL base, account admin e impostazioni (PostgreSQL, ClickHouse). Crea una directory dedicata, clona il repo Community Edition e prepara il file .env.

Creare directory e clonare il repo

mkdir -p ~/plausible
cd ~/plausible
git clone https://github.com/plausible/community-edition.git
cd community-edition

Generare una chiave segreta

Plausible richiede una chiave segreta (SECRET_KEY_BASE) per firmare le sessioni. Generane una:

openssl rand -base64 64 | tr -d '\n'

Copia l'output; lo userai nel file .env nel passo successivo.

Creare il file .env

Crea il file .env nella root del progetto (dentro community-edition):

nano .env

Aggiungi la configurazione seguente sostituendo i valori con i tuoi:

ADMIN_USER_EMAIL=admin@esempio.com
ADMIN_USER_NAME=admin
ADMIN_USER_PWD=TUA_PASSWORD_ADMIN
BASE_URL=https://plausible.tuodominio.com
SECRET_KEY_BASE=TUA_CHIAVE_SEGRETA_GENERATA
DATABASE_URL=postgres://postgres:postgres@plausible_db:5432/plausible_db
CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db
VariabileDescrizione
ADMIN_USER_EMAILEmail account admin Plausible
ADMIN_USER_NAMENome visualizzato admin
ADMIN_USER_PWDPassword account admin (usa una password forte)
BASE_URLURL pubblico Plausible (HTTPS, tuo dominio)
SECRET_KEY_BASEChiave generata nel passo precedente
DATABASE_URLConnessione PostgreSQL (non modificare salvo personalizzazione)
CLICKHOUSE_DATABASE_URLConnessione ClickHouse per eventi (non modificare)
Sostituisci i valori

Adatta admin@esempio.com, TUA_PASSWORD_ADMIN, plausible.tuodominio.com e TUA_CHIAVE_SEGRETA_GENERATA al tuo ambiente.

Esporre la porta dell'applicazione (override Docker Compose)

Plausible è in ascolto sulla porta 8000 in interno. Per far sì che Nginx lo raggiunga, esponi questa porta solo in locale tramite un file override:

nano compose.override.yaml

Contenuto:

services:
plausible:
ports:
- 127.0.0.1:8000:8000

Salva e esci. Docker Compose unirà questo file a compose.yml all'avvio.

Deploy dei container Plausible

Con l'ambiente configurato, avvia tutti i servizi (app, PostgreSQL, ClickHouse) con Docker Compose:

cd ~/plausible/community-edition
docker compose up -d

Verifica che tutti i container siano in esecuzione:

docker compose ps

Tutti i servizi (plausible, plausible_db, plausible_events_db, ecc.) devono essere "Up". In caso di errore, controlla i log: docker compose logs -f.

Reverse proxy Nginx e HTTPS (Let's Encrypt)

Per esporre Plausible su internet in HTTPS, installa Nginx come reverse proxy davanti alla porta 8000, poi Certbot per ottenere un certificato Let's Encrypt e configurare HTTPS automaticamente.

Installare Nginx

sudo apt update
sudo apt install -y nginx

Creare la configurazione Nginx per Plausible

Crea un virtual host dedicato (sostituisci plausible.tuodominio.com con il tuo dominio):

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

Contenuto (stesso blocco server del tutorial EN/FR). Abilita il sito, testa e ricarica Nginx.

Aprire le porte 80 e 443 nel firewall

sudo ufw allow 80,443/tcp
sudo ufw reload

Ottenere il certificato TLS con Certbot

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d plausible.tuodominio.com -m admin@esempio.com --agree-tos --no-eff-email

Accesso e prima configurazione

  1. Apri un browser e vai a: https://plausible.tuodominio.com/register
  2. Inserisci nome, email e password, poi Crea il mio account.
  3. Aggiungi un sito da analizzare, installa lo script di tracciamento nel <head> delle tue pagine, verifica l'installazione.

Comandi utili

ComandoDescrizione
docker compose psStato container Plausible
docker compose logs -f plausibleSegui i log dell'applicazione
docker compose downArresta tutti i container
docker compose up -dRiavvia i container in background
sudo systemctl reload nginxRicarica la configurazione Nginx

Riferimenti