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:
- VPS Performance - Ideale per uno o più siti
- VPS NVMe - Ottimo rapporto qualità/prezzo
- Server Dedicati Eco - Per traffico analytics elevato
- Server Dedicati Performance - Prestazioni massime
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
| Componente | Minimo | Consigliato |
|---|---|---|
| RAM | 2 GB | 4 GB |
| CPU | 2 core | 2-4 core |
| Storage | 10 GB | 20 GB |
| Rete | 100 Mbps | 1 Gbps |
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
| Variabile | Descrizione |
|---|---|
ADMIN_USER_EMAIL | Email account admin Plausible |
ADMIN_USER_NAME | Nome visualizzato admin |
ADMIN_USER_PWD | Password account admin (usa una password forte) |
BASE_URL | URL pubblico Plausible (HTTPS, tuo dominio) |
SECRET_KEY_BASE | Chiave generata nel passo precedente |
DATABASE_URL | Connessione PostgreSQL (non modificare salvo personalizzazione) |
CLICKHOUSE_DATABASE_URL | Connessione ClickHouse per eventi (non modificare) |
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
- Apri un browser e vai a:
https://plausible.tuodominio.com/register - Inserisci nome, email e password, poi Crea il mio account.
- Aggiungi un sito da analizzare, installa lo script di tracciamento nel
<head>delle tue pagine, verifica l'installazione.
Comandi utili
| Comando | Descrizione |
|---|---|
docker compose ps | Stato container Plausible |
docker compose logs -f plausible | Segui i log dell'applicazione |
docker compose down | Arresta tutti i container |
docker compose up -d | Riavvia i container in background |
sudo systemctl reload nginx | Ricarica la configurazione Nginx |