Se hai più servizi self-hosted sullo stesso server, prima o poi ti trovi davanti allo stesso problema: come esporli con un dominio, HTTPS e configurazione ordinata senza gestire a mano decine di file Nginx. Nginx Proxy Manager nasce proprio per questo.

Si tratta di un reverse proxy con interfaccia web che consente di esporre servizi interni tramite dominio o sottodominio, attivare certificati SSL gratuiti con Let’s Encrypt e gestire redirect, access list e proxy host in modo molto più semplice rispetto a una configurazione Nginx tradizionale.

In questa guida vediamo come installare Nginx Proxy Manager con Docker Compose, come effettuare il primo accesso e come creare il tuo primo reverse proxy con SSL.

Cos’è Nginx Proxy Manager

Nginx Proxy Manager è un progetto open source distribuito come immagine Docker pronta all’uso. Il suo obiettivo è semplificare la gestione di host in reverse proxy con terminazione SSL, mantenendo una barriera d’ingresso molto bassa anche per chi non ha esperienza avanzata con Nginx.

Tra le funzioni principali ci sono:

  • gestione visuale dei proxy host;
  • certificati SSL gratuiti con Let’s Encrypt;
  • redirect e 404 host;
  • supporto per stream e access list;
  • gestione utenti, permessi e audit log;
  • configurazioni Nginx avanzate per utenti esperti.

Prerequisiti

Prima di iniziare ti servono pochi elementi:

  • un server Linux (Debian 13 o Ubuntu 26.04), un VPS o un mini PC con Docker e Docker Compose installati;
  • porte 80 e 443 raggiungibili dall’esterno, se vuoi usare SSL pubblico;
  • un dominio o sottodominio che punti all’indirizzo IP del server;
  • facoltativamente, altri servizi già in esecuzione da esporre dietro proxy.

1. Crea la cartella del progetto

Per prima cosa crea una cartella dedicata a Nginx Proxy Manager:

mkdir -p ~/nginx-proxy-manager
cd ~/nginx-proxy-manager

All’interno di questa cartella verranno salvati sia la configurazione dell’applicazione sia i certificati Let’s Encrypt.

2. Crea il file docker-compose.yml

Il progetto offre una configurazione minima basata su SQLite, molto pratica per iniziare. Crea un file chiamato docker-compose.yml con questo contenuto:

services:
  app:
    image: 'jc21/nginx-proxy-manager:2.15.1'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      TZ: 'Europe/Rome'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Questa configurazione espone:

  • la porta 80 per HTTP;
  • la porta 443 per HTTPS;
  • la porta 81 per il pannello di amministrazione.

Il progetto usa la cartella data per il database e i dati applicativi, mentre i certificati SSL vengono salvati nella cartella letsencrypt.

3. Avvia Nginx Proxy Manager

Dopo aver salvato il file, avvia il container con:

docker compose up -d

Puoi controllare che il container sia partito correttamente con:

docker ps

La documentazione ufficiale segnala che al primo avvio potrebbero volerci alcuni minuti per la generazione delle chiavi JWT e per l’inizializzazione del database.

4. Accedi al pannello web

Quando il servizio è pronto, apri il browser e visita:

http://IP-DEL-SERVER:81

Al primo accesso, ti verrà richiesto di creare un account amministratore, soprattutto a partire dalle ultime versioni.

Puoi impostare la lingua italiana dal menù in alto a destra:

Nginx Proxy Manager - Primo Accesso
Nginx Proxy Manager – Primo Accesso

Dopo la registrazione inziale, si verrà inoltrati alla dashboard:

Nginx Proxy Manager - Dashboard
Nginx Proxy Manager – Dashboard

5. Configura il dominio

Prima di creare un proxy host, assicurati che il tuo dominio o sottodominio punti all’IP pubblico del server. Se sei in homelab domestico, in genere devi anche configurare il port forwarding sul router per inoltrare le porte 80 e 443 verso la macchina che esegue Nginx Proxy Manager.

Il progetto consiglia proprio questo approccio: usare Nginx Proxy Manager come gateway unico per inoltrare il traffico web verso gli altri servizi self-hosted interni.

6. Crea il primo Proxy Host

Una volta effettuato l’accesso, entra nella sezione Hosts > Proxy Hosts e clicca su Add Proxy Host.

Nginx Proxy Manager - Proxy Hosts
Nginx Proxy Manager – Proxy Hosts

Compila i campi principali in questo modo:

  • Domain Names: il dominio o sottodominio, ad esempio cloud.example.com;
  • Scheme: http oppure https, in base al servizio interno;
  • Forward Hostname / IP: l’IP locale o il nome del container del servizio di destinazione;
  • Forward Port: la porta del servizio interno, ad esempio 3000, 8080 o 8096.

In molti casi è utile attivare anche:

  • Block Common Exploits;
  • Websockets Support;
  • Cache Assets, solo se ha senso per il servizio che stai pubblicando.
Nginx Proxy Manager - Nuovo Proxy
Nginx Proxy Manager – Nuovo Proxy

7. Attiva il certificato SSL

Dopo aver configurato il proxy host, passa alla scheda SSL. Qui puoi richiedere un certificato gratuito Let’s Encrypt direttamente dall’interfaccia.

Nginx Proxy Manager - SSL
Nginx Proxy Manager – SSL

Di solito basta:

  • selezionare Request a new SSL Certificate;
  • accettare i termini di Let’s Encrypt;
  • inserire un indirizzo email valido;
  • attivare Force SSL per reindirizzare il traffico su HTTPS.

Se il dominio punta correttamente al server e le porte 80 e 443 sono raggiungibili, il certificato verrà emesso e rinnovato automaticamente.

8. Quando usare SQLite e quando un database esterno

Per iniziare, SQLite va benissimo ed è il metodo più semplice. La documentazione ufficiale propone proprio una configurazione minima senza database separato.

Se però vuoi una configurazione più strutturata, il progetto supporta anche MariaDB/MySQL e PostgreSQL tramite variabili ambiente dedicate. Per una guida introduttiva, SQLite resta comunque la scelta più veloce.

9. Dove usare Nginx Proxy Manager

Nginx Proxy Manager è utile in molti scenari:

  • per pubblicare servizi self-hosted come Nextcloud, Teedy, PairDrop o Uptime Kuma;
  • per centralizzare SSL e reindirizzamenti;
  • per semplificare la gestione di più sottodomini;
  • per evitare di modificare a mano i file di configurazione Nginx per ogni servizio.

Considerazioni finali

Nginx Proxy Manager è una delle soluzioni più pratiche per chi vuole pubblicare servizi self-hosted con dominio e HTTPS senza complicarsi la vita. Con Docker Compose bastano pochi minuti per avere un pannello da cui creare reverse proxy, ottenere certificati SSL gratuiti e gestire più applicazioni web da un unico punto.

Se stai costruendo un piccolo homelab o vuoi dare un assetto più ordinato ai tuoi servizi Docker, è uno di quei software che vale davvero la pena installare subito.

FAQ

Cos’è Nginx Proxy Manager?

Nginx Proxy Manager è un reverse proxy open source con interfaccia web, progettato per gestire domini, sottodomini, SSL, redirect e access list in modo semplice.

Si può installare con Docker Compose?

Sì, il progetto fornisce una configurazione ufficiale molto semplice basata su Docker Compose.

Quali porte usa Nginx Proxy Manager?

La porta 80 viene usata per HTTP, la 443 per HTTPS e la 81 per il pannello di amministrazione.

Serve un dominio per usare Let’s Encrypt?

Sì, per ottenere un certificato pubblico Let’s Encrypt devi usare un dominio o sottodominio che punti al server.

SQLite basta oppure serve MariaDB o PostgreSQL?

Per iniziare SQLite è sufficiente e rappresenta la soluzione più semplice. Per installazioni più strutturate puoi usare anche MariaDB o PostgreSQL.

Rispondi