Cos’è AnythingLLM e perché vale la pena auto‑ospitarlo nel 2026
AnythingLLM è una piattaforma open‑source che combina tre componenti chiave in un’unica interfaccia: una chat, un motore RAG (Retrieval‑Augmented Generation) per la ricerca documentale e un builder no‑code per agenti. L’intera pipeline – caricamento dei file, creazione dei vettori di embedding e salvataggio delle conversazioni – resta sul server interno, garantendo la sovranità dei dati e la conformità al GDPR.
Il progetto, mantenuto da Mintplex Labs, è rilasciato sotto licenza MIT e, al 2 settembre 2026, contava 65 520 stelle su GitHub e 7 245 fork. La versione più recente è la v1.18.0, pubblicata il 13 ottobre 2026, dopo la v1.17.0 del 1 ottobre 2026.
AnythingLLM si collega sia a runtime locali come Ollama o LM Studio, sia a API compatibili con OpenAI, permettendo l’uso di modelli open‑source (DeepSeek‑V4, Qwen3, Llama, GLM) o di provider cloud (Google Vertex AI, OpenAI) in scenari ibridi.
Dal punto di vista europeo, la combinazione di licenza MIT, inferenza locale e rispetto della normativa sulla privacy rende AnythingLLM una delle poche soluzioni commercialmente utilizzabili senza restrizioni, secondo il portale Opsily.
Prerequisiti hardware, software e versioni consigliate
Prima di avviare l’installazione, è fondamentale verificare che l’infrastruttura soddisfi i requisiti minimi e, preferibilmente, le raccomandazioni per il 2026.
- Sistema operativo: Linux (Ubuntu 24.04 LTS o successivo), macOS o Windows con WSL2.
- RAM: minimo 8 GB, consigliato 16–32 GB per carichi produttivi.
- Spazio disco: almeno 10 GB liberi; per produzione 50 GB+ (modelli, documenti, indici).
- Docker Engine: versione 24 o superiore; Docker Compose v5.5.0.
- GPU (opzionale): nessuna per CPU‑only, ma una NVIDIA con 8 GB+ VRAM è consigliata per ridurre i tempi di embedding e inferenza.
- Ollama: versione 0.30 o superiore; la 0.33.3 è bundle con AnythingLLM v1.16.2.
- AnythingLLM: immagine Docker “latest”, corrispondente a v1.18.0.
Modelli da 7 B a 13 B parametri funzionano bene su CPU con 8–16 GB di RAM; per modelli più grandi (30 B+), è indispensabile una GPU con almeno 16 GB di VRAM.
Rete e sicurezza
Se l’istanza è destinata a un ambiente aziendale, è necessario definire:
- Nome DNS interno per l’accesso.
- Regole firewall per la porta 3001 (default HTTP).
- Controlli di accesso al host Docker.
Queste scelte, se prese in anticipo, evitano modifiche complesse dopo il primo docker compose up.
Installazione di AnythingLLM con Docker: i 12 passaggi
Passaggi 1–3: Preparazione dell’ambiente Docker
Passo 1 – Verifica Docker e Docker Compose
docker --version
docker compose version
Output atteso (esempio):
Docker version 27.3.1, build ce12230
Docker Compose version v5.5.0
Passo 2 – Creazione della cartella di progetto e del file docker‑compose.yml
mkdir -p ~/anythingllm/storage
cd ~/anythingllm
cat > docker-compose.yml << 'EOF'
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
ports:
- "3001:3001"
environment:
- STORAGE_DIR=/app/server/storage
- JWT_SECRET=bitte-hier-einen-eigenen-zufallswert-eintragen
volumes:
- ./storage:/app/server/storage
restart: unless-stopped
EOF
Il volume ./storage garantisce la persistenza dei dati tra i riavvii del container.
Passo 3 – Avvio del container
docker compose up -d
Controllare lo stato con docker compose ps e verificare che la porta 3001 sia in ascolto.
Passaggi 4–6: Configurazione di Ollama e del modello locale
Passo 4 – Installazione di Ollama
Su Linux:
curl -fsSL https://ollama.com/install.sh | sh
ollama --version # dovrebbe restituire 0.33.3 o superiore
Su Windows con WSL2, eseguire lo stesso script all’interno della distribuzione Linux.
Passo 5 – Download del modello DeepSeek‑V4 (consigliato per il 2026)
ollama pull deepseek-v4
Il modello verrà salvato nella directory predefinita di Ollama (di solito ~/.ollama/models).
Passo 6 – Configurazione del collegamento in AnythingLLM
Accedere all’interfaccia web (http://localhost:3001), andare su “Settings → Model Provider” e selezionare “Ollama”. Inserire l’URL http://host.docker.internal:11434 (per Docker su Linux) o http://host.docker.internal:11434 (per WSL2/Windows). Scegliere “deepseek-v4” come modello predefinito.
Passaggi 7–9: Creazione del workspace e indicizzazione dei documenti
Passo 7 – Creare un nuovo workspace
Dalla dashboard, cliccare “New Workspace”, assegnare un nome (es. “Support interno”) e definire i permessi di accesso.
Passo 8 – Caricare i documenti
Trascinare PDF, DOCX o file di testo nella sezione “Documents”. Il sistema genera automaticamente gli embedding tramite il modello selezionato.
Passo 9 – Verificare l’indice RAG
Utilizzare la barra di ricerca del workspace per inserire una query di prova (es. “Come resetto la password del portale?”). Il risultato dovrebbe includere la risposta estratta dal documento e la citazione della fonte.
Passaggi 10–12: Sicurezza, produzione e integrazione API
Passo 10 – Configurare il JWT secret
Nel file docker-compose.yml sostituire JWT_SECRET=bitte-hier-einen-eigenen-zufallswert-eintragen con una stringa casuale lunga almeno 32 caratteri. Riavviare il container per rendere effettivo il cambiamento.
Passo 11 – Abilitare il backup automatico
Impostare un cron job sul host per eseguire:
docker exec anythingllm tar czf /app/server/storage/backup_$(date +%F).tar.gz /app/server/storage
e copiare il file di backup in un volume di rete o storage cloud interno.
Passo 12 – Utilizzare la REST‑API
AnythingLLM espone endpoint /api/v1/chat. Un esempio di chiamata cURL:
curl -X POST http://localhost:3001/api/v1/chat \
-H "Authorization: Bearer <jwt-token>" \
-H "Content-Type: application/json" \
-d '{"workspaceId":"", "messages":[{"role":"user","content":"Qual è la procedura di onboarding?"}]}'
La risposta includerà il testo generato e, se disponibile, i riferimenti ai documenti di origine.
Problemi comuni e soluzioni pratiche
Embedding lento: su CPU‑only, aumentare la RAM a 32 GB o passare a una GPU; in alternativa, quantizzare il modello con Ollama (ollama quantize deepseek-v4 q4_0).
Errore di connessione al modello: verificare che l’opzione host.docker.internal punti correttamente al servizio Ollama; su sistemi Linux senza Docker Desktop, usare --network host nel compose file.
Persistenza dei dati persa: assicurarsi che il volume ./storage sia montato correttamente e non sia definito come tmpfs. Controllare i permessi di scrittura per l’utente docker.
Confronto con le alternative più rilevanti
Le due soluzioni più citate per il self‑hosting nel 2026 sono LibreChat e LocalAI.
- Licenza: AnythingLLM (MIT) è più permissiva rispetto a LibreChat (GPL‑3) e LocalAI (Apache 2.0).
- Supporto RAG integrato: Only AnythingLLM offre una RAG engine nativa per workspace separati; LibreChat richiede plugin esterni, LocalAI non ha un’interfaccia web dedicata.
- Facilità di deployment: Con Docker Compose, AnythingLLM è pronto all’uso in pochi minuti; LibreChat necessita di più configurazioni manuali, LocalAI richiede la compilazione di binari per alcune architetture.
- Scalabilità: AnythingLLM supporta più workspace isolati, mentre LibreChat gestisce un unico indice condiviso. LocalAI può scalare ma richiede un orchestratore Kubernetes.
Per team europei che privilegiano la sovranità dei dati e una rapida messa in produzione, AnythingLLM risulta la scelta più equilibrata.
Conclusioni e prossimi passi
Seguendo i dodici passaggi descritti, è possibile avere in meno di un’ora un assistente interno basato su AI, capace di indicizzare e rispondere a domande su manuali, FAQ e contratti, mantenendo tutti i dati on‑premise. Le opzioni di backup, sicurezza JWT e integrazione API consentono di passare rapidamente da un prototipo a un servizio di produzione.
Le evoluzioni future prevedono l’integrazione di modelli ancora più efficienti (es. Kimi K3, GLM‑5.2) e il supporto nativo per orchestratori cloud‑private, aprendo la strada a scenari di IA aziendale più complessi, come agenti auto‑apprendenti e workflow automatizzati.
