Ospitare Listmonk su un VPS gestito: le vostre newsletter sul vostro server

Ospitare Listmonk su un VPS gestito significa custodire le vostre liste di iscritti e le vostre campagne su una macchina tutta vostra, che i nostri team tengono aggiornata e supervisionano giorno e notte. Listmonk è un software libero con licenza AGPL-3.0. Questa guida segue la sua documentazione ufficiale: la versione da scegliere, Docker Compose, PostgreSQL, HTTPS, l'invio tramite SMTP, i rimbalzi, il consenso, i backup e gli aggiornamenti.

Simon Vasconcelos Lee Di Pubblicato il 12 novembre 2026Lettura: 13 minuti

Tutte le guide

In breve

  1. La licenza AGPL-3.0 consente di usare Listmonk in azienda senza alcuna licenza da acquistare; se lo modificate, i vostri utenti a distanza devono poter ottenere il codice sorgente della vostra versione.
  2. Installate la versione stabile 6.2.0 con un tag Docker fisso: la versione 7, in evidenza su GitHub, è ancora una beta.
  3. Docker Compose avvia Listmonk e PostgreSQL. Pubblicate la porta 9000 in locale, servitela in HTTPS dietro un reverse proxy e compilate la sua «Root URL».
  4. Listmonk invia tramite i server SMTP che configurate: per un invio massivo, scegliete un servizio di invio specializzato sulla 587, con SPF, DKIM e DMARC sul vostro dominio.
  5. Preferite il double opt-in, attivate la gestione dei rimbalzi ed esportate il database con pg_dump prima di ogni aggiornamento.

Che cosa fa Listmonk

Listmonk gestisce le vostre liste di distribuzione e le vostre newsletter da un'interfaccia web. È un programma unico, scritto in Go, la cui sola dipendenza è PostgreSQL. Le sue liste sono a senso unico: voi scrivete ai vostri iscritti, e non si tratta di una lista di discussione tra loro.

Che cosa consente la licenza AGPL-3.0

Listmonk è pubblicato con licenza GNU AGPL versione 3. Potete usarlo, anche in azienda, e inviare le vostre campagne come quelle dei vostri clienti, senza alcuna licenza da acquistare. Resta il costo del server e quello del vostro servizio di invio.

L'articolo 13 aggiunge una condizione propria dell'AGPL: se modificate il programma, la vostra versione deve proporre chiaramente a tutti coloro che lo usano a distanza, tramite la rete, di ottenerne gratuitamente il codice sorgente. Se distribuite delle copie, si applicano anche gli obblighi di condivisione del codice della licenza. Far girare Listmonk senza modificarlo non fa scattare questo articolo.

Quale versione di Listmonk installare?

Un punto da conoscere prima di iniziare. Su GitHub, il tag «Latest» indica in questo momento la v7.0.0-beta.2 del 10 novembre 2026, che il progetto stesso presenta come una beta. L'ultima versione stabile è la v6.2.0, che contiene correzioni di sicurezza sui permessi. All'11 novembre 2026, l'immagine Docker latest indica questa v6.2.0.

VersioneImmagine DockerStato
v6.2.0listmonk/listmonk:v6.2.0Stabile: quella di questa guida
v7.0.0-beta.2listmonk/listmonk:betaBeta: da provare su una copia, con un backup
nightlylistmonk/listmonk:nightlyNon testata, secondo il progetto: a vostro rischio

La versione 7 sostituisce tutta l'interfaccia di amministrazione, cambia alcuni dei suoi indirizzi, trasforma l'impostazione app.from_email in un elenco di indirizzi e modifica delle chiavi di traduzione, il che riguarda i modelli personalizzati. Leggete le sue note di rilascio prima di passarvi.

Il file Compose del progetto lancia --upgrade --yes a ogni avvio: una nuova immagine migra il database senza chiedervelo. Ora, un database migrato non si rilegge con una versione più vecchia, e tornare indietro impone di ripristinare un backup. Con un tag fisso, come v6.2.0, il cambio di versione resta una vostra decisione.

L'installazione con Docker Compose

Il progetto raccomanda Docker Compose: il suo file avvia insieme Listmonk e PostgreSQL. Su un server in cui Docker è installato, create una cartella e scaricate questo file:

Terminale
mkdir listmonk
cd listmonk
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml

Il progetto chiede di adattare questo file al vostro ambiente. Ecco le sole righe da cambiare, il resto non si tocca:

docker-compose.yml, le righe da modificare
x-db-credentials: &db-credentials
  POSTGRES_USER: &db-user listmonk
  POSTGRES_PASSWORD: &db-password un-mot-de-passe-long
  POSTGRES_DB: &db-name listmonk

services:
  app:
    image: listmonk/listmonk:v6.2.0
    ports:
      - "127.0.0.1:9000:9000"
    hostname: listmonk.example.com

Avviate poi i servizi, creando in anticipo l'account Super Admin. Queste due variabili servono solo al primo avvio, e senza di esse l'account si crea alla prima visita dell'interfaccia: meglio che esista prima di aprire il vostro dominio.

Terminale
LISTMONK_ADMIN_USER=votre-identifiant LISTMONK_ADMIN_PASSWORD=votre-mot-de-passe docker compose up -d

Senza Docker: il binario

Listmonk gira anche come programma singolo, accanto al vostro server PostgreSQL, in versione 12 o successiva, dove il database è già stato creato.

  1. Scaricate l'archivio della v6.2.0 dalla pagina delle versioni del progetto, per esempio listmonk_6.2.0_linux_amd64.tar.gz, evitando la beta in evidenza, ed estraete il binario.
  2. Generate il file di configurazione, poi compilate le credenziali del database in config.toml.
  3. Installate le tabelle, poi avviate Listmonk.
Terminale
./listmonk --new-config
./listmonk --install
./listmonk

Per impostazione predefinita, config.toml ascolta su localhost:9000, il che va bene dietro un reverse proxy. Il repository fornisce un file di servizio listmonk@.service per systemd.

La taglia del server

Il sito del progetto cita un'istanza di produzione che invia una campagna di oltre 7 milioni di e-mail con una frazione di un core di processore e un picco di 57 MB di memoria. Non pubblica né un minimo né una cifra per PostgreSQL, il cui volume cresce con i vostri iscritti, le vostre aperture e i vostri clic. Su un VPS gestito, descrivetici il vostro uso e vi raccomandiamo la taglia adatta.

HTTPS e il reverse proxy

I vostri iscritti cliccano su link che puntano alla vostra istanza: cancellazione, conferma, tracciamento dei clic. Essa si serve quindi in HTTPS sul proprio nome di dominio. Create i record A e AAAA di questo nome verso il vostro server, dove i visitatori arrivano sulle porte 80 e 443. La documentazione di Listmonk lascia la scelta del proxy, ecco due configurazioni comuni.

Con Caddy

Caddy ottiene e rinnova da solo il certificato:

Caddyfile
listmonk.example.com {
    reverse_proxy 127.0.0.1:9000
}

Con Nginx e Certbot

Nginx rifiuta per impostazione predefinita le richieste di oltre 1 MB, con un errore 413. Per importare un file di iscritti o delle immagini, alzate questo limite in base ai vostri file:

Blocco Nginx
server {
    listen 80;
    listen [::]:80;
    server_name listmonk.example.com;
    client_max_body_size 100m;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Certbot installa poi il certificato Let's Encrypt e il reindirizzamento verso HTTPS, quindi rinnova il certificato in autonomia:

Terminale
sudo certbot --nginx -d listmonk.example.com

Le prime impostazioni

Accedete a https://listmonk.example.com/admin, poi aprite «Settings»:

Che cosa resta pubblico, che cosa si può chiudere

Per filtrare l'accesso, per indirizzo IP o tramite un proxy di autenticazione, la documentazione suddivide così le route:

RouteRuoloAccesso
/admin/*, /api/*, /webhooks/bounceL'amministrazione, la sua API e il webhook interno dei rimbalziPrivato
/subscription/*, /public/*Le pagine di iscrizione e i loro filePubblico
/link/*, /campaign/*Il tracciamento dei link e il pixel di tracciamentoPubblico
/webhooks/service/*I rimbalzi inviati dal vostro servizio di invioPubblico
/uploads/*Le immagini delle vostre e-mailPubblico

L'invio: Listmonk passa dai vostri server SMTP

Listmonk prepara e cadenza le vostre e-mail, poi le affida ai server SMTP che dichiarate in «Settings», «SMTP». Non le consegna da sé alle caselle dei vostri iscritti: la qualità della consegna dipende quindi da quel server, dal vostro dominio e dalle vostre liste.

Per un invio massivo, scegliete un servizio di invio specializzato: porta la reputazione dei vostri invii e le firme del vostro dominio, e sa segnalare i rimbalzi. Da un VPS Simafri, l'invio passa da un relay SMTP autenticato, sulla porta 587: qui, quello di questo servizio.

Per orientarvi, la documentazione di Listmonk descrive i rimbalzi di Amazon SES, di Azure Communication Services, di SendGrid, di Postmark, di Forward Email e di Lettermint. Confrontateli in base al vostro volume e ai vostri destinatari.

ImpostazioneValoreChe cosa verificate
HostL'indirizzo SMTP del vostro servizioSostituisce il valore d'esempio fornito
Port587Le preimpostazioni della schermata propongono spesso un'altra porta: tornate sulla 587
TLSSTARTTLSSi accompagna alla porta 587
Auth protocolQuello del vostro servizio, spesso LOGINCon l'identificativo e la password SMTP del servizio

Cliccate poi su «Test connection»: Listmonk invia un messaggio di prova e mostra l'errore del server se l'invio fallisce. Potete dichiarare più server, sceglierne uno per campagna, oppure instradare gli invii in base all'indirizzo o al dominio di mittente.

La velocità di invio

Impostatela in «Settings», «Performance», sotto il limite del vostro servizio:

Un messaggio che fallisce viene ritentato secondo l'impostazione «Retries», su altre connessioni del server. Se fallisce ancora, Listmonk lo segna come errore e passa al successivo: sorvegliate questi errori durante una grossa campagna.

Recapitabilità, cancellazione e consenso

Ospitare l'applicazione vi rende padroni di questi temi, ed è da essi che dipende se le vostre e-mail arrivano.

SPF, DKIM e DMARC

Inviate da un indirizzo del vostro dominio, e pubblicate nella sua zona DNS i record SPF e DKIM che il vostro servizio di invio vi fornisce, insieme a un record DMARC. Google richiede tutti e tre ai mittenti di più di 5 000 messaggi al giorno verso account Gmail, con un dominio di mittente allineato su SPF o DKIM, la cancellazione con un clic per i messaggi di marketing e un tasso di segnalazione come spam sotto lo 0,30 %, idealmente sotto lo 0,10 %.

La cancellazione

Il consenso dei vostri destinatari

Listmonk applica il tipo di lista che scegliete. Su una lista con opt-in singolo, un iscritto aggiunto senza conferma riceve comunque le vostre campagne. Su una lista con double opt-in, riceve prima un'e-mail di conferma, e solo gli iscritti confermati ricevono le vostre campagne. È la scelta che protegge meglio la vostra reputazione di invio e che conserva una traccia chiara del consenso.

Le regole dipendono dal paese dei vostri destinatari. In Francia, per esempio, la CNIL richiede il consenso preventivo dei privati, tramite un'azione positiva come una casella non preselezionata, con un'eccezione per i vostri clienti su prodotti o servizi analoghi. Tra professionisti, la prospezione può fondarsi sul legittimo interesse se riguarda la loro attività. In ogni caso, ogni messaggio identifica il mittente e offre un mezzo semplice per rifiutare i successivi.

Scrivete solo a persone che attendono i vostri messaggi. Una lista acquistata o vecchia fa salire i rimbalzi e le segnalazioni come spam, ed è il vostro dominio a subirne le conseguenze.

Il tracciamento delle aperture e dei clic

Il pixel di tracciamento e il tracciamento dei clic toccano la privacy, e la documentazione chiede di usarli nel rispetto di regole come il GDPR. Per impostazione predefinita, questo tracciamento non è collegato a ciascun iscritto: l'opzione «Individual subscriber tracking» lo collega, e «Disable tracking» lo disattiva del tutto, in «Settings», «Privacy».

I rimbalzi

Continuare a scrivere a un indirizzo che rifiuta i vostri messaggi danneggia la vostra reputazione di invio. La gestione dei rimbalzi è disattivata in partenza: attivatela in «Settings», «Bounces», poi scegliete una di queste due vie.

Per una casella dedicata, dichiaratela come indirizzo di ritorno in «Settings», «SMTP», «Custom headers»:

Intestazioni personalizzate
[
  {"Return-Path": "your-bounce-inbox@example.com"}
]

Le impostazioni di partenza sono quelle che la documentazione indica per SES, e formano una buona base:

Tipo di rimbalzoNumeroAzione
Soft (lieve)2None: nessuna
Hard (definitivo)1Blocklist: l'indirizzo viene bloccato
Complaint (segnalazione come spam)1Blocklist: l'indirizzo viene bloccato

PostgreSQL, la sola dipendenza

Listmonk richiede PostgreSQL 12 o successivo. Il file Compose porta postgres:17-alpine, con i suoi dati nel volume Docker listmonk-data. Iscritti, campagne, modelli, statistiche e la maggior parte delle impostazioni vivono lì; solo le credenziali del database e l'indirizzo di ascolto restano nella configurazione.

Per puntare a un server PostgreSQL esistente, modificate le variabili LISTMONK_db__host, LISTMONK_db__port, LISTMONK_db__user, LISTMONK_db__password e LISTMONK_db__database del servizio app.

Listmonk è progettato per grandi liste. Man mano che il database cresce, è lui a poter rallentare l'interfaccia: con milioni di iscritti, la dashboard e i contatori possono impiegare decine di secondi a comparire. Il progetto consiglia allora due gesti:

Terminale, nella cartella del docker-compose.yml
docker compose exec db psql -U listmonk -d listmonk -c 'VACUUM ANALYZE;'

Backup e aggiornamenti

Due elementi formano la vostra istanza: il database PostgreSQL e la cartella uploads, se le vostre immagini restano sul disco. pg_dump produce un'esportazione coerente senza fermare Listmonk né bloccare gli altri accessi al database:

Terminale, nella cartella del docker-compose.yml
docker compose exec -T db pg_dump -U listmonk listmonk > listmonk-$(date +%F).sql
tar -czf listmonk-uploads-$(date +%F).tar.gz uploads

Per ripristinare, fermate Listmonk, svuotate il database, poi ricaricate l'esportazione. Come precisa la documentazione, questo gesto cancella il database in uso:

Terminale
docker compose stop app
docker compose exec db psql -U listmonk -d listmonk -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'
docker compose exec -T db psql -U listmonk -d listmonk < listmonk-2026-11-01.sql
docker compose start app

Aggiornare

  1. Leggete le note della nuova versione: Listmonk vi segnala le nuove versioni nella sua interfaccia, e alcune contengono correzioni di sicurezza.
  2. Esportate il database, come chiede il progetto prima di ogni aggiornamento.
  3. Cambiate il tag dell'immagine in docker-compose.yml.
  4. Lanciate i comandi della documentazione. Il file Compose migra il database all'avvio.
Terminale
docker compose down app
docker compose pull
docker compose up app -d

Con il binario, fermate Listmonk, sostituite il binario, lanciate ./listmonk --upgrade, poi riavviatelo. Per tornare a una versione precedente, ripristinate l'esportazione fatta prima dell'aggiornamento, poi rimettete il vecchio tag.

Chi fa che cosa su un VPS gestito

Il self-hosting richiede di occuparsi del server oltre che dell'applicazione. Su un VPS gestito, i nostri team prendono in carico il server e seguono la vostra istanza in modo proattivo; Listmonk resta il vostro software, con le sue impostazioni, le vostre liste e le vostre campagne.

ArgomentoI nostri teamVoi
Il serverAggiornamenti del sistema e della sicurezza, interventi sul server compresiIl momento più adatto alla vostra attività
La supervisioneServer seguito 24 ore su 24, 7 giorni su 7, con intervento senza attendere la vostra chiamataIl monitoraggio delle vostre campagne e dei vostri rimbalzi
ListmonkMonitoraggio proattivo: errori, rallentamenti e spazio su disco individuati, correzione raccomandataLa sua installazione, i suoi aggiornamenti e le sue impostazioni, che applicate voi o il vostro assistente IA
L'invioUn server che raggiunge il vostro relay SMTP sulla porta 587Il vostro servizio di invio, i vostri record DNS, le vostre liste e il consenso dei vostri destinatari
I backupOgni notte, cifrati e conservati fuori dalla macchina; ripristino compresoLa richiesta di ripristino e la vostra esportazione prima di ogni aggiornamento
La migrazioneIl vostro server attuale migrato, in omaggioIl momento del passaggio

Se preferite che i nostri team intervengano nell'applicazione stessa, questa prestazione si fattura a ore o a forfait, con un preventivo comunicato prima dell'intervento.

Listmonk, su un server gestito per voi

Con un VPS gestito Simafri, i nostri team tengono aggiornato il server della vostra istanza Listmonk, lo sorvegliano giorno e notte e intervengono senza attendere la vostra chiamata; seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi o il vostro assistente IA. I backup sono cifrati ogni notte e conservati fuori dalla macchina, il loro ripristino è compreso e la migrazione del vostro server attuale è in omaggio.

Scoprire i VPS gestiti

Domande frequenti

Listmonk è gratuito per un'azienda?

Sì. Listmonk ha licenza AGPL-3.0: potete usarlo in azienda senza alcuna licenza da acquistare. Se lo modificate, i vostri utenti a distanza devono poter ottenere il codice sorgente della vostra versione. Restano il costo del server e quello del vostro servizio di invio.

Quale versione di Listmonk installare?

La v6.2.0, ultima versione stabile all'11 novembre 2026. La v7.0.0-beta.2, in evidenza su GitHub, è una beta. In Docker Compose, fissate l'immagine su listmonk/listmonk:v6.2.0: il cambio di versione resta così una vostra decisione, perché un database migrato non si rilegge con una versione più vecchia.

Come installare Listmonk con Docker Compose?

Scaricate il file docker-compose.yml del progetto, cambiate la password del database e il tag dell'immagine, poi lanciate docker compose up -d. L'interfaccia risponde sulla porta 9000, con PostgreSQL accanto. Servitela in HTTPS dietro un reverse proxy e compilate la sua Root URL.

Quale server SMTP usare con Listmonk?

Listmonk invia tramite i server SMTP che configurate. Per un invio massivo, scegliete un servizio di invio specializzato, in STARTTLS sulla porta 587, e pubblicate SPF, DKIM e DMARC sul vostro dominio. La documentazione di Listmonk descrive per esempio i rimbalzi di Amazon SES, SendGrid e Postmark.

Come gestire i rimbalzi in Listmonk?

Attivate la gestione in Settings, Bounces, poi collegate il webhook del vostro servizio di invio o una casella POP3 dedicata. Le impostazioni di partenza bloccano un indirizzo non appena c'è un rimbalzo definitivo o una segnalazione come spam.

Come fare il backup di Listmonk?

Esportate il database con pg_dump, senza fermare il servizio, e conservate la cartella uploads se le vostre immagini sono sul disco. Il progetto chiede questa esportazione prima di ogni aggiornamento, perché una versione precedente non rilegge un database già migrato.

Listmonk gestisce il consenso e la cancellazione?

Ne fornisce gli strumenti: liste con double opt-in, link di cancellazione nei vostri modelli, intestazione List-Unsubscribe, esportazione e cancellazione dei dati da parte dell'iscritto. Il consenso stesso resta da raccogliere da parte vostra, secondo le regole del paese dei vostri destinatari.

Un VPS gestito copre Listmonk?

Un VPS gestito copre il server: sistema, sicurezza, supervisione e backup. I nostri team seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi. Un intervento nell'applicazione si fattura a ore o a forfait.

Fonti e documentazione ufficiale

Contattaci