Configurare Ubuntu 24.04 + n8n per l'uso con SSL (certificato SSL di Let's Encrypt)
Per creare un PDF, utilizzare la funzione “Stampa” in fondo alla pagina.
Per VPS e Server Cloud migrato
In questo articolo, scoprirai come installare l'immagine Ubuntu 24.04 + n8n sul tuo server. n8n viene messo a disposizione in un container Docker come parte dell'installazione. L'immagine n8n fornita da IONOS non include un certificato SSL per l'indirizzo IP associato, pertanto inizialmente l'accesso è possibile solo tramite il protocollo HTTP non criptato. Per accedere a n8n tramite una connessione criptata, è necessaria una configurazione manuale. Di seguito ti spieghiamo come preparare la configurazione e come configurare n8n.
Riepilogo dei passaggi necessari
I passaggi necessari sono elencati in breve qui di seguito:
- Installa l'immagine sul server
- Prepara la configurazione
- Stabilisci la connessione SSH al server
- Configura n8n per la connessione SSL
- Accedi all'interfaccia n8n
Avvertenza
Se reinstalli un'immagine su un server esistente, tutti i dati presenti sul server verranno eliminati irrevocabilmente e sostituiti dai dati della nuova immagine installata. Questa operazione non può essere annullata. Assicurati di creare un backup del server prima di procedere con l'installazione dell'immagine. In caso contrario, rischi di perdere i dati.
Installare un'immagine sul server
Per installare l'immagine Ubuntu 24.04 + n8n, procedi come segue:
- Accedi al tuo account IONOS.
Nella barra del titolo, fai clic su Menu > Server & Cloud.
Opzionale: seleziona il contratto Server & Cloud desiderato.
- Fai clic sul server desiderato nell'area Infrastruttura > Server.
- Clicca su Azioni.
- Fai clic su Reinstalla immagine. Viene visualizzata l'area Reinstalla immagine.

- Fai clic sulla freccia rivolta verso il basso nel riquadro Ubuntu.
- Seleziona l'immagine Ubuntu 24.04 + n8n.
- Clicca su Reinstalla immagine. L'immagine viene installata. Questo processo potrebbe richiedere alcuni minuti.
- Prendi nota dell'indirizzo IP del server. Questo ti servirà in seguito per collegare il dominio.
Preparare la configurazione
Per stabilire una connessione crittografata a n8n, hai bisogno di un dominio accessibile. Inoltre, è necessario un certificato SSL emesso per quel dominio.
Ordinare un dominio
Se non hai ancora ordinato un dominio per il tuo server, puoi farlo in qualsiasi momento. Trovi le istruzioni nel seguente articolo: Ordinare un dominio come cliente IONOS
Creare un sottodominio
Crea un sottodominio nel seguente formato: n8n.example.com
Sostituisci il segnaposto example.com con il dominio che hai scelto. Nel seguente articolo trovi le istruzioni per creare un sottodominio nel tuo account IONOS: Creare un sottodominio
Collegare il dominio all'indirizzo IP statico del server
Per una guida su come collegare il tuo dominio all'indirizzo IP statico del server, consulta il seguente articolo: Modificare l'indirizzo IPv4/IPv6 di un dominio (record A/AAA)
Configurare il firewall
Assicurati che le seguenti porte siano abilitate nei criteri del firewall:
Porta 80
Porta 443
Porta 5678
Trovi le relative istruzioni nel seguente articolo: Modificare i criteri del firewall (VPS e Server Cloud migrato)
Stabilire una connessione SSH al server
Nel prossimo passaggio, stabilisci una connessione SSH con il tuo server. Per farlo, accedi come root. Trovi le istruzioni corrispondenti nei seguenti articoli:
Stabilire una connessione SSH al tuo server Linux su un computer con Microsoft Windows
Stabilire una connessione SSH al tuo server Linux su un computer Linux
Configurare n8n per una connessione SSL
Importante
Con questi passaggi disattivi l'istanza non protetta installata e installi una nuova istanza n8n protetta da un certificato SSL di Let's Encrypt. Se esegui questa procedura dopo aver lavorato per qualche tempo con l'istanza non protetta, ti consigliamo di esportare prima i flussi di lavoro e gli altri contenuti che hai creato per poterli importare nella nuova istanza. Per sapere come fare, consulta la documentazione di n8n Exporting and importing workflows
Per creare una nuova directory denominata n8n-compose sul tuo server, immetti il seguente comando:
root@ubuntu:~# mkdir n8n-compose
Per continuare a lavorare nella directory appena creata, passa alla nuova directory:
root@ubuntu:~# cd n8n-compose
In questa directory, utilizza l'editor vi per creare un file con estensione .env. Questo file viene utilizzato per definire le variabili d'ambiente utilizzate nel file Docker Compose.
root@ubuntu:~/n8n-compose# vi .env
Nota bene
L'editor vi ha una modalità di inserimento e una modalità di comando. Puoi entrare nella modalità di inserimento premendo il tasto [i]. In questa modalità, i caratteri digitati vengono immediatamente inseriti nel testo. Per entrare nella modalità di comando, premi [ESC]. Quando utilizzi la modalità di comando, l'input da tastiera viene interpretato come un comando. Per uscire da vi e salvare il file, digita il comando :wq, poi premi Invio.
Inserisci nel file .env le informazioni riportate di seguito e sostituisci il segnaposto example.com e quello relativo al fuso orario. Queste variabili verranno riprese in un passaggio successivo nel file compose.yaml e servono a definire le impostazioni del dominio, il fuso orario standard desiderato e l'indirizzo e-mail per i certificati SSL.
# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
# The top level domain to serve from
DOMAIN_NAME=example.com
# The subdomain to serve from
SUBDOMAIN=n8n
# The above example serves n8n at: https://n8n.example.com
# Optional timezone to set which gets used by Cron and other scheduling nodes
# New York is the default value if not set
GENERIC_TIMEZONE=Europe/Berlin
# The email address to use for the TLS/SSL certificate creation
SSL_EMAIL=user@example.com- Sostituisci il segnaposto user@example.com nella riga SSL_EMAIL.
- Premi il tasto [ESC].
Per uscire da vi e salvare il file, digita il seguente comando e premi il tasto Invio:
root@ubuntu:~# :wq
Crea una directory denominata local-files. Questa verrà usata come bind-mount per consentire l'accesso ai file dal container. Per farlo, digita il seguente comando:
root@ubuntu:~/n8n-compose# mkdir local-files
Per creare il file Docker Compose necessario, digita il seguente comando:
root@ubuntu:~/n8n-compose# vi compose.yaml
Ora aggiungi le informazioni seguenti:
services:
traefik:
image: "traefik"
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
porte:
- "80:80"
- "443:443"
volumi:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
immagine: docker.n8n.io/n8nio/n8n
restart: sempre
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
ambiente:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- NODE_ENV=produzione
- WEBHOOK_URL=https://${SOTTODOMINIO}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumi:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumi:
n8n_data:
traefik_data:
Nota bene
La voce "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json" deve essere su una sola riga.
- Premi il tasto [ESC].
Per uscire da vi e salvare il file, immetti il comando seguente e premi il tasto Invio:
:wq
Per scoprire quale processo utilizza la porta 5678, digita il seguente comando:
root@ubuntu:~/n8n-compose# sudo lsof -i :5678
Per terminare un processo, adatta il seguente comando e inseriscilo:
root@ubuntu:~/n8n-compose# sudo kill INSERIRE_QUI_PID
Dopo l'adattamento, digita il comando seguente per arrestare i vecchi container:
root@ubuntu:~/n8n-compose# docker compose down
Per avviare i container definiti in compose.yaml come demoni in background, inserisci il comando seguente. Questo comando avvia e configura le istanze di Traefik e n8n.
root@ubuntu:~/n8n-compose# docker compose up -d
Per verificare se i container funzionano, digita il seguente comando:
root@ubuntu:~/n8n-compose# docker ps
Assicurati che i 2 container seguenti siano in esecuzione e che il loro stato sia "UP". Per farlo, digita i seguenti comandi:
root@ubuntu:~/n8n-compose# n8n-compose-traefik-1
root@ubuntu:~/n8n-compose# n8n-compose-n8n-1
Accedere all'interfaccia n8n
Una volta avviati correttamente i servizi Docker (container), l'accesso a n8n sarà gestito dal proxy Traefik. Traefik assicura la crittografia SSL e inoltra le richieste alla tua istanza n8n. L'accesso avviene ora esclusivamente tramite il dominio che hai configurato in precedenza nel file .env.
Nota bene
L'accesso diretto tramite http://SERVER-IP:5678 non è più possibile. La configurazione in compose.yaml (alla voce ports: - "127.0.0.1:5678:5678") assicura che n8n sia accessibile solo "internamente" (per Traefik), ma non pubblicamente tramite l'IP del server.
- Apri il browser.
- Immetti l'URL completo e sicuro, composto dalle variabili SUBDOMAIN e DOMAIN_NAME del file .env. Ad esempio: https://n8n.example.com
- Al primo accesso apparirà la finestra Set up owner account. Inserisci l'indirizzo e-mail desiderato nel campo Email address.
- Inserisci il nome e il cognome desiderati nei campi First Name e Last Name.
- Inserisci una password nel campo Password.
- Fai clic su Next. Si apre la finestra Customize n8n to you.

- Rispondi alle domande della finestra Customize n8n to you e fai clic su Get started. A questo punto puoi iniziare a utilizzare n8n.
