
Plausible Analytics è una piattaforma di web analytics open source, leggera e privacy-friendly: non usa cookie, non traccia dati personali degli utenti e nasce già conforme al GDPR, senza bisogno di banner di consenso.
È una delle alternative più mature a Google Analytics per chi vuole tenere i dati dei propri siti interamente in casa.
Dalla versione 3.x, il progetto ha semplificato molto il self-hosting: la Community Edition (CE) ufficiale si installa tramite il repository plausible/community-edition, con un unico file compose.yml già pronto e gestione automatica del certificato TLS via Let’s Encrypt integrata nel container stesso (senza bisogno di un reverse proxy dedicato, a meno che non lo si preferisca).
PREREQUISITI
- Una VM o server con Ubuntu Server 26.04, accesso SSH con privilegi sudo/root
- Un dominio che punti all’IP del server (es. plausible.tuodominio.it), necessario per l’emissione automatica del certificato TLS
- Docker Engine ≥ 20.10.0 e Docker Compose ≥ 2.0.0
- Almeno 2 GB di RAM liberi (ClickHouse ne ha bisogno per funzionare senza OOM)
- Porte 80 e 443 libere e raggiungibili dall’esterno (per HTTP-01 challenge Let’s Encrypt
INSTALLAZIONE DI DOCKER E DOCKER COMPOSE
Se il server non ha già Docker installato eseguire i comandi elencati di seguito:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
Verificare l’installazione di docker con i comandi:
|
0 |
docker --version
|
Dovremmo visualizzare il seguente output:
|
0 |
Docker version 29.7.2, build a7dcaa6
|
Eseguire il comando:
|
0 |
docker compose version
|
Dovremmo visualizzare il seguente output:
|
0 |
Docker Compose version v5.5.0
|
(Facoltativo) Per usare docker senza sudo eseguire i comandi:
|
0
1
|
sudo usermod -aG docker $USER
newgrp docker
|
CLONAZIONE DEL REPOSITORY UFFICIALE
Clonare il repository ufficiale con i comandi:
|
0
1
2
|
git clone -b v3.2.1 --single-branch https://github.com/plausible/community-edition plausible-ce
cd plausible-ce
ls -1
|
Dovremmo visualizzare un output simile al seguente:
|
0
1
2
3
4
5
6
7
8
9
10
|
Cloning into 'plausible-ce'...
remote: Enumerating objects: 112, done.
remote: Counting objects: 100% (83/83), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 112 (delta 58), reused 34 (delta 34), pack-reused 29 (from 2)
Receiving objects: 100% (112/112), 22.15 KiB | 3.69 MiB/s, done.
Resolving deltas: 100% (63/63), done.
LICENSE
README.md
clickhouse
compose.yml
|
NOTA BENE: Controllare su GitHub se è disponibile un tag più recente di v3.2.1 al momento dell’installazione.
CONFIGURAZIONE DEL FILE .ENV
Creare il file .env con dominio e chiave segreta con i comandi:
|
0
1
2
|
touch .env
echo "BASE_URL=https://plausible.tuodominio.it" >> .env
echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
|
Verificare il contenuto con il seguente comando:
|
0 |
cat .env
|
Dovremmo visualizzare il seguente output:
BASE_URL: deve corrispondere al dominio che punta al tuo server (il DNS deve essere già propagato, serve per l’emissione automatica del certificato Let’s Encrypt).
SECRET_KEY_BASE: deve essere una stringa di almeno 64 byte (il comando openssl rand -base64 48 genera un valore adeguato). Conservala al sicuro, non versionarla su Git.
Test in locale: per provare Plausible senza un dominio pubblico puoi usare BASE_URL=http://localhost:8000.
ESPOSIZIONE DEL SERVIZIO WEB
Esistono due opzioni: TLS automatico integrato oppure dietro un reverse proxy che già gestisci (es. Nginx Proxy Manager).
OPZIONE A – TLS automatico (Let’s Encrypt integrato, nessun reverse proxy esterno)
|
0
1
2
3
4
5
6
7
8
9
|
echo "HTTP_PORT=80" >> .env
echo "HTTPS_PORT=443" >> .env
cat > compose.override.yml << 'EOF'
services:
plausible:
ports:
- 80:80
- 443:443
EOF
|
In questo modo il container stesso emette e rinnova il certificato TLS per il dominio in BASE_URL, senza bisogno di configurare nulla lato Nginx/Caddy.
OPZIONE B – Dietro un reverse proxy esistente (es. Nginx Proxy Manager)
Se preferisci mantenere la gestione dei certificati su Nginx Proxy Manager esporre Plausible solo su localhost su una porta interna e disabilitare il TLS automatico con i comandi:
|
0
1
2
3
4
5
6
7
|
echo "HTTP_PORT=8000" >> .env
cat > compose.override.yml << 'EOF'
services:
plausible:
ports:
- "127.0.0.1:8000:80"
EOF
|
Poi in NPM creare un nuovo Proxy Host con le seguenti info:
Domain: plausible.tuodominio.it
Forward Hostname/IP: IP del server Docker (o host.docker.internal se NPM è sullo stesso host in un’altra rete Docker)
Forward Port: 8000
Abilita SSL: con richiesta certificato Let’s Encrypt e “Force SSL” dal tab SSL di NPM
AVVIO DEL CONTAINER
Avviare il container con il comando:
|
0 |
docker compose up -d
|
Dovremmo visualizzare un output simile al seguente:
|
0
1
2
3
4
5
6
7
8
9
10
11
|
[+] up 43/43
✔ Image postgres:16-alpine Pulled 16.1s
✔ Image clickhouse/clickhouse-server:24.12-alpine Pulled 16.0s
✔ Image ghcr.io/plausible/community-edition:v3.2.1 Pulled 26.6s
✔ Network plausible-ce_default Created 0.0s
✔ Volume plausible-ce_db-data Created 0.0s
✔ Volume plausible-ce_event-data Created 0.0s
✔ Volume plausible-ce_event-logs Created 0.0s
✔ Volume plausible-ce_plausible-data Created 0.0s
✔ Container plausible-ce-plausible_events_db-1 Healthy 12.5s
✔ Container plausible-ce-plausible_db-1 Healthy 12.5s
✔ Container plausible-ce-plausible-1 Started
|
Controllare lo stato e i log con i seguenti comandi:
|
0
1
2
|
docker compose ps
docker compose logs -f plausible
|
ATTENZIONE: Attendere che PostgreSQL e ClickHouse superino i rispettivi health check prima che Plausible completi il setup del database: la prima partenza può richiedere qualche decina di secondi.
PRIMO ACCESSO VIA WEB GUI
Aprire il browser su $BASE_URL (es. https://plausible.tuodominio.it).
Al primo avvio la Community Edition mostra direttamente la pagina di registrazione: crea qui il primo utente amministratore (le registrazioni successive richiedono un invito).
Inserire tutte le info relative al primo amministratore quindi cliccare Create my account
Inserire le info relative al dominio quindi cliccare Install Palusible
Selezionare lo script da inserire sul sito da analizzare quindi cliccare Verify Script Installation
Attendere qualche minuto…
Al termine del check dovremmo visualizzare la dashboard con i siti sotto analisi
Dopo un po dovremmo iniziare a vedere tutte le statistiche dei siti come mostrato nell’immagine sovrastante
AGGIORNAMENTO NUOVA VERSIONE
Per aggiornare Plausible alla nuova versione eseguire i comandi:
|
0
1
2
3
4
5
6
7
8
|
cd plausible-ce
git fetch --tags
git checkout v3.x.x # nuovo tag disponibile
docker compose pull
docker compose up -d
|
BACKUP DI PLAUSIBLE
Per il backup i dati persistenti (PostgreSQL account/config e ClickHouse eventi) risiedono nei volumi Docker: identificali con docker volume ls e includili nella tua routine di backup abituale (es. snapshot del volume o pg_dump/clickhouse-backup pianificati).
PRO E CONTRO
PRO
- Nessun cookie, nessun dato personale raccolto: conforme GDPR by design
- Dashboard semplice, leggera, tutto su un’unica pagina
- Script di tracciamento minuscolo (pochi KB), impatto quasi nullo sulle performance
- Setup Docker Compose ufficiale e ben mantenuto, con TLS automatico incluso
CONTRO
- ClickHouse richiede CPU con set di istruzioni SSE 4.2 (o NEON su ARM): quasi tutte le CPU moderne lo supportano, ma va verificato su hardware datato o alcune VM
- Consiglia almeno 2 GB di RAM dedicati solo per ClickHouse + Plausible
- Le funzionalità avanzate (multi-utente su larga scala, funnel avanzati, ecc.) restano nelle versioni Cloud/Enterprise
CONCLUSIONI
Con la Community Edition attuale, il self-hosting di Plausible si riduce a clonare un repository, impostare due variabili in .env e lanciare docker compose up -d: il TLS automatico integrato elimina quasi del tutto la configurazione manuale di un reverse proxy, a meno che non si voglia integrarlo nell’infrastruttura esistente (come Nginx Proxy Manager). Il risultato è un’analytics leggera, privacy-first e completamente sotto il proprio controllo.

0 Commenti