SSD Nodes Learn
Guide Matt ConnorDi Matt Connor · Aggiornato 2026-07-24

Installare Dify su VPS con Docker Compose

Guida all'installazione di Dify tramite Docker Compose. Richiede almeno 4 GB di RAM per gestire i 6 container. Configura il file .env e l'account admin.

Cos'è Dify e cosa ti impegni a gestire

Dify è una piattaforma self-hostable per costruire applicazioni basate su modelli linguistici di grandi dimensioni (LLM). Fornisce un'interfaccia web per progettare app di chat, agenti e pipeline di recupero dati, un'API per chiamarli dal proprio codice e un unico punto per gestire prompt, dataset e chiavi dei modelli. È lo strumento ideale per i piccoli team che vogliono costruire su una base privata condivisa, evitando di disperdere chiavi API in vari script.

Eseguirlo autonomamente significa gestire diversi componenti. Dify viene distribuito come un insieme di container Docker: un server API, un worker in background, un frontend web, un database Postgres, una cache Redis e un database vettoriale, tutti collegati tramite Docker Compose. Si tratta di più di un singolo binario, ma Compose gestisce i collegamenti e un VPS con qualche gigabyte di RAM libera lo esegue senza problemi.

Poiché Dify contiene le tue chiavi API dei modelli e, spesso, documenti privati caricati per il recupero dati, tratta il server su cui gira come un sistema sensibile fin dal primo minuto. Questa guida lo installa e poi lo mette in sicurezza come faresti con qualsiasi servizio che gestisce dati segreti.

Prerequisites

È necessario un VPS con Ubuntu 24.04 con Docker e il plugin Docker Compose installati, e un utente con sudo o appartenente al gruppo docker. Se Docker è nuovo per te, le basi di Docker Compose su un VPS copre l'installazione e i comandi principali su cui si basa questa guida. È consigliabile avere un nome di dominio puntato verso il server, poiché avrai bisogno del protocollo TLS davanti a Dify invece di un semplice indirizzo IP.

Step 1: Ottieni Dify e i suoi file Compose

Dify mantiene la sua configurazione Docker nel repository principale. Clonalo e spostati nella directory docker:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

Il file .env contiene l'intera configurazione. Leggilo prima di iniziare qualsiasi operazione. I valori prioritari sono quelli che impostano password e segreti: SECRET_KEY, la password di Postgres e la password di Redis. Il file di esempio contiene valori segnaposto; lasciare i valori predefiniti è il modo più comune in cui un'istanza Dify self-hosted viene compromessa. Genera una chiave segreta reale:

openssl rand -base64 42

Incollala in SECRET_KEY e imposta un valore forte e unico per ogni campo password nel file.

Step 2: Avvialo

Avvia lo stack:

docker compose up -d

La prima esecuzione scarica diverse immagini e inizializza il database, quindi attendi un minuto. Verifica che i container siano in stato healthy:

docker compose ps

Ogni servizio deve leggere running. Dify serve la sua interfaccia web tramite un container nginx incluso sulla porta 80 di default. Alla prima visita a http://YOUR_SERVER/install creerai l'account admin. Fallo immediatamente, prima che qualsiasi altro servizio raggiunga la porta, perché finché quell'account non esiste, chiunque carichi la pagina può reclamarlo e prendere il controllo della tua istanza.

Step 3: Non esporlo direttamente. Usa TLS e un firewall davanti

Qui è dove la maggior parte delle installazioni rapide si ferma e iniziano la maggior parte degli incidenti. Il nginx integrato di Dify ascolta sulla porta 80, in chiaro, su ogni interfaccia. Non vuoi che il tuo login admin e le tue chiavi API dei modelli viaggino su HTTP semplice, e non vuoi che i servizi interni siano raggiungibili dall'esterno.

Proteggi il server con un firewall "default-deny" che permetta solo il traffico SSH e web:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Ricorda che un firewall che copre solo IPv4 può lasciare le stesse porte aperte su IPv6, il gap del firewall IPv6 che colpisce molti utenti self-hosted. Conferma che entrambi gli stack siano filtrati.

Per il TLS, la soluzione più pulita è vincolare la porta web di Dify al loopback e utilizzare un reverse proxy con un certificato Let's Encrypt davanti, in modo che l'unica cosa visibile su internet sia il proxy che parla HTTPS. Il parametro .env di Dify ti permette di cambiare la porta esposta; impostala per vincolarla a 127.0.0.1 e punta il tuo proxy verso quella porta. I concetti di hardening degli agenti in eseguire un agente AI in sicurezza su un VPS si applicano anche qui: mantieni i componenti interni sul loopback, esponi solo ciò che deve essere pubblico e lascia che un unico front-end protetto parli TLS.

Step 4: Mantienilo aggiornato

Dify si evolve rapidamente e gli aggiornamenti includono correzioni di sicurezza. L'aggiornamento consiste in un pull e un riavvio dalla directory docker:

git pull
docker compose pull
docker compose up -d

Leggi le note di rilascio prima di un salto di versione maggiore, perché Dify occasionalmente modifica lo schema .env tra una release e l'altra, e una nuova variabile non impostata può impedire l'avvio di un container.

Step 5: Esegui il backup di ciò che non puoi rigenerare

Due elementi su un server Dify sono irripiazzabili: il database Postgres, che contiene le tue app, gli utenti e le impostazioni, e il volume che memorizza i documenti caricati e l'indice vettoriale. Entrambi risiedono sotto Docker volumes nella directory docker. Esegui snapshot periodici e copia gli snapshot fuori dal server. Una chiave API di un modello può essere rigenerata; l'app su cui hai lavorato per una settimana no.

Per un agente autonomo che esegue codice, consulta self-hosting Agent Zero, mentre costruire il proprio agente AI su un VPS copre le fondamenta di tutti questi sistemi.

FAQ

Quali sono i requisiti di sistema per l'auto-hosting di Dify?

Dify gira come uno stack Docker Compose di circa mezza dozzina di container, quindi pianifica un VPS con almeno 2 GB di RAM libera, idealmente 4 GB, oltre a un paio di core CPU e spazio disco sufficiente per i documenti caricati e l'indice vettoriale. Il carico di memoria è causato dal database e dal vector store, non da Dify stesso.

È sicuro esporre Dify direttamente sulla porta 80?

No. Il server web integrato di Dify ascolta in HTTP semplice e gestisce il tuo login admin e le tue chiavi API dei modelli. Usa un reverse proxy con un certificato Let's Encrypt, vincola la porta di Dify al loopback e lascia che solo il proxy HTTPS sia esposto su internet. Abbinalo a un firewall "default-deny" che copra sia IPv4 che IPv6.

Come si aggiorna un'istanza Dify self-hosted?

Dalla directory docker, esegui git pull, poi docker compose pull e docker compose up -d per scaricare le nuove immagini e riavviare. Leggi prima le note di rilascio, perché Dify a volte aggiunge nuove variabili .env tra una versione e l'altra, e una variabile mancante può impedire l'avvio di un container.

Qual è la prima cosa da fare dopo aver installato Dify?

Visita /install e crea immediatamente l'account admin. Finché quell'account non esiste, chiunque riesca a raggiungere la pagina può reclamarlo. Configuralo non appena i container sono in stato healthy, e prima di aprire il firewall al mondo.