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.
Immagine: menu Azioni con la voce di menu Reinstalla immagine nell'area Infrastruttura > Server
Immagine: menu Azioni con la voce di menu Reinstalla immagine nell'area Infrastruttura > Server
  • 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.
Immagine: pulsante Next nella finestra Setup owner account
Immagine: pulsante Next nella finestra Setup owner account
  • Rispondi alle domande della finestra  Customize n8n to you e fai clic su Get started. A questo punto puoi iniziare a utilizzare n8n.
     
Immagine: pulsante Get started nella finestra Customize n8n to you
Immagine: pulsante Get started nella finestra Customize n8n to you