- Published on
Docker + Nginx Proxy Manager in LXC su Proxmox: la mia configurazione ideale
- Authors

- Name
- Alessandro Iannacone
In questo articolo condivido la mia configurazione attuale per far girare Nginx Proxy Manager (NPM) dentro un container LXC su Proxmox, usando Docker. È il cuore della mia infrastruttura self-hosted e mi permette di gestire i reverse proxy HTTPS di tutti i miei servizi (da portainer a Grafana, da blog a backend API) in modo facile, visuale e sicuro.
🎯 Obiettivo
Volevo un setup che fosse:
- ✅ Leggero e isolato
- ✅ Facile da ripristinare o clonare
- ✅ Gestibile da interfaccia web (no solo nginx.conf)
- ✅ Compatibile con certificati Let's Encrypt automatici
- ✅ Pronto per future espansioni (es. autenticazione, rate limiting, etc.)
🏗️ Ambiente di base
- Hypervisor: Proxmox VE 8.x
- Container: LXC Debian 12 (privilegiato)
- Strumenti: Docker + Docker Compose
- Proxy: Nginx Proxy Manager (con dashboard web)
⚙️ Passaggi chiave
1. Creazione del container LXC
Nel mio caso:
pct create 105 local:vztmpl/debian-12-standard_*.tar.zst \
--hostname npm \
--cores 2 \
--memory 1024 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--features keyctl=1,nesting=1 \
--unprivileged 0 \
--rootfs local-lvm:10
🔐 Nota: uso un container privilegiato perché Docker ne ha bisogno per funzionare correttamente su LXC.
Poi attivo nesting:
pct set 105 -features nesting=1,keyctl=1
2. Installazione di Docker
Nel container:
apt update && apt install -y curl gnupg2 ca-certificates lsb-release software-properties-common
curl -fsSL https://get.docker.com | sh
# opzionale: docker compose v2
apt install docker-compose-plugin
3. Docker Compose per NPM
Nel container creo una cartella /opt/npm con dentro questo docker-compose.yml:
version: '3'
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- 80:80
- 81:81 # interfaccia web
- 443:443
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Poi avvio:
docker compose up -d
🔐 Accesso e configurazione
L'interfaccia è accessibile su:
http://<IP_CONTAINER>:81
Credenziali predefinite:
- Email:
[email protected] - Password:
changeme
La prima cosa da fare è cambiarle e poi iniziare ad aggiungere proxy host. Ogni dominio può avere:
- Redirect
- Certificato Let's Encrypt
- Header custom
- Autenticazione HTTP basic
📌 Ottimizzazioni utili
🔄 Backup veloce
Creo backup automatici delle cartelle data e letsencrypt (via rsync o Proxmox snapshot). In questo modo posso ripristinare il container e riavere tutti i proxy configurati in pochi minuti.
📈 Monitoraggio
Uso anche un container con Uptime Kuma per controllare che tutti i proxy siano up & running. Facile da integrare.
🚀 Considerazioni finali
Questa configurazione mi ha semplificato enormemente la gestione dei miei servizi. Usare un container LXC leggero, con Docker dentro, permette di avere un buon compromesso tra flessibilità e efficienza.
Se usi Proxmox e ti serve un reverse proxy moderno, NPM in LXC è una scelta che consiglio senza esitazioni.
💬 Domande o suggerimenti?
Scrivimi via email se vuoi condividere la tua configurazione o hai dubbi tecnici!