- Published on
Installare Listmonk su LXC senza Docker
- Authors

- Name
- Alessandro Iannacone
Listmonk è una piattaforma open source, leggera e performante per l'invio di newsletter e campagne email. In questa guida vedremo come installarla senza Docker, in un container LXC (ad esempio su Proxmox), usando PostgreSQL come database.
Obiettivo: avere Listmonk in esecuzione come servizio di sistema, accessibile sulla rete, pronto per inviare newsletter via SMTP.
Requisiti
- Container LXC con Debian/Ubuntu
- Accesso root
- Porta
9000aperta
1. Installare PostgreSQL
apt update
apt install postgresql -y
2. Creare il database e l'utente per Listmonk
sudo -u postgres psql
Nel prompt:
CREATE DATABASE listmonk;
CREATE USER listmonk WITH PASSWORD 'listmonk';
GRANT ALL PRIVILEGES ON DATABASE listmonk TO listmonk;
\q
3. Scaricare il binario Listmonk
cd /opt
curl -L https://github.com/knadh/listmonk/releases/latest/download/listmonk.tar.gz | tar -xz
cd listmonk
Copia il binario in /usr/bin per comodità:
cp listmonk /usr/bin/
chmod +x /usr/bin/listmonk
4. Configurare Listmonk
Modifica il file config.toml in /opt/listmonk/:
[app]
address = "0.0.0.0:9000"
[db]
host = "127.0.0.1"
port = 5432
user = "listmonk"
password = "listmonk"
database = "listmonk"
ssl_mode = "disable"
📅 Importante: assicurati che il file
config.tomlsia nella stessa cartella indicata nel servizio systemd (WorkingDirectory).
5. Installare Listmonk (una tantum)
/usr/bin/listmonk --install
6. Creare un servizio systemd
nano /etc/systemd/system/listmonk.service
Contenuto:
[Unit]
Description=Listmonk self-hosted newsletter
After=network.target postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/listmonk
ExecStart=/usr/bin/listmonk
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
Attiva e avvia:
systemctl daemon-reexec
systemctl enable --now listmonk
Verifica:
systemctl status listmonk
7. Accedi a Listmonk
Apri il browser su:
http://IP_DEL_CONTAINER:9000
Credenziali predefinite:
- Utente:
admin - Password:
listmonk
Troubleshooting
- Errore CHDIR: assicurati che
WorkingDirectorynel servizio punti alla cartella corretta (/opt/listmonk) - Porta non raggiungibile: controlla che
address = "0.0.0.0:9000"nelconfig.tomle che non ci sia un firewall che blocchi la porta - Crash al reload: esegui Listmonk sempre con percorso assoluto (
/usr/bin/listmonk)
Prossimi passi
- Aggiungere un reverse proxy con Nginx per HTTPS
- Configurare un dominio (es.
newsletter.tuodominio.it) - Integrare SPF, DKIM e DMARC per migliorare la deliverability
- Creare campagne e template Markdown/HTML
Hai bisogno di uno script completo di installazione automatica o una config per Nginx con HTTPS? Scrivimi e lo aggiungo volentieri!