Claude self-hosted: la risposta onesta
I pesi di Claude non sono pubblici: nessun server tuo puo eseguirlo. Scopri cosa puoi davvero self-hostare: modelli open, gateway API e Claude Code.
Puoi eseguire Claude in self-hosting? No, e questo è il motivo
Non puoi eseguire Claude in self-hosting. Anthropic non pubblica i pesi del modello, quindi non esiste alcun file da scaricare, alcun container da eseguire né alcuna licenza che consenta di servirlo sul tuo hardware. Ogni richiesta a Claude viene inviata all'API di Anthropic o a un partner con servizio gestito, come Amazon Bedrock, Google Vertex AI o Microsoft Foundry. Eseguirlo su una macchina di tua proprietà non è un problema di configurazione. L'artefatto semplicemente non esiste al di fuori di Anthropic.
Questa è la risposta breve. Quella più completa è che la maggior parte delle persone che pongono questa domanda non vuole realmente i pesi del modello. Vuole una delle tre soluzioni seguenti, tutte realizzabili su un server sotto il tuo controllo: un modello valido eseguito localmente, un gateway che custodisca le chiavi API e limiti la spesa, oppure un agente di coding che risieda sul proprio server anziché sul laptop. Questa guida tratta tutte e tre le opzioni, includendo i comandi.
Che cosa significa di solito “Claude self-hosted”
Le ricerche per “Claude self-hosted” riflettono esigenze diverse, che richiedono risposte differenti.
Alcune persone cercano la privacy. Non vogliono che i prompt lascino la propria rete. Solo un modello open weight eseguito localmente risolve questo problema, perché ogni richiesta a Claude è, per definizione, una richiesta inviata ad Anthropic.
Altre persone vogliono controllare i costi. Temono che un agente incontrollato consumi rapidamente i crediti. Un gateway risolve il problema e funziona con Claude, permettendo di mantenere la qualità del modello.
Altre ancora vogliono non dipendere da un laptop. Vogliono un agente che continui a lavorare anche quando chiudono il coperchio. Un VPS risolve il problema e Claude Code vi funziona senza problemi.
Alcune persone cercano la soluzione indicata dall’espressione “self-hosted OpenRouter”. Anche in questo caso si tratta di un gateway e la risposta abituale è LiteLLM.
Stabilisci a quale esigenza appartieni, perché la soluzione corretta è diversa in ciascun caso.
Esegui un modello open in self-hosting
Se il requisito è che nessun prompt lasci il server, esegui un modello con pesi aperti. Le famiglie effettivamente utilizzabili oggi su un server in hosting sono Llama, Qwen, Mistral, Gemma e DeepSeek. Tutte pubblicano pesi che puoi scaricare ed eseguire.
Ollama è il modo più rapido per iniziare. Lo script di installazione richiede una sola riga e configura un servizio systemd su Ubuntu.
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollamasystemctl status ollama dovrebbe stampare active (running). Poi scarica un modello e interagisci con esso.
ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."Il primo pull scarica diversi gigabyte, quindi il modello deve poter essere contenuto nella RAM o nella memoria della GPU prima di poter rispondere. Una regola approssimativa per i modelli quantizzati è la seguente: un modello da 8 miliardi di parametri richiede circa 6 GB liberi, un modello da 14 miliardi di parametri circa 10 GB, mentre un modello da 70 miliardi di parametri richiede più memoria di quella disponibile nella maggior parte dei piani VPS general purpose. Se la macchina non dispone di memoria sufficiente, il processo viene terminato dal kernel e viene visualizzato Error: llama runner process has terminated, con una riga relativa alla memoria esaurita in dmesg. Controlla free -h prima di attribuire il problema al modello. Lo stesso budget di memoria determina anche la quantità di un prompt lungo che il modello legge effettivamente, perché Ollama tronca senza avviso tutto ciò che supera una finestra predefinita piuttosto ridotta. Per questo, aumentare num_ctx e dimensionare la cache KV è il primo controllo da fare quando i documenti lunghi vengono restituiti con il riepilogo troncato a metà.
Ollama espone anche un'API HTTP su 127.0.0.1:11434, ed è questo che lo rende utile ad altri software oltre che come semplice strumento di chat.
curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'Se la prima richiesta dopo un periodo di inattività richiede trenta secondi, mentre la successiva viene restituita immediatamente, non c'è alcun problema: Ollama scarica il modello dalla memoria dopo cinque minuti di inattività e mantenerlo residente con keep_alive elimina il tempo necessario a ricaricarlo.
Lascia quella porta associata a localhost. Una porta Ollama aperta su un IP pubblico offre una GPU gratuita a chiunque la trovi. La configurazione completa, inclusi l'unità systemd, il rilevamento della GPU e l'inserimento di un reverse proxy davanti al servizio, è descritta nella guida per eseguire Ollama su un VPS. Se devi gestire più di un utente contemporaneamente, leggi prima il confronto tra Ollama e vLLM, perché il design a flusso singolo di Ollama diventa un collo di bottiglia molto prima dell'hardware.
Sii realistico sul divario. Un buon modello open su un VPS di fascia media è realmente utile per riepiloghi, classificazione, stesura e semplici attività di estrazione. Nel ragionamento lungo e articolato, su codebase di grandi dimensioni e nell'uso agentico degli strumenti, non è paragonabile a un modello hosted di frontiera, e nessuna quantità di ottimizzazione dei prompt colma questo divario. Scegli il modello locale per le attività in cui è efficace e usa il modello hosted quando la difficoltà lo richiede.
Gestire il proprio gateway con LiteLLM
Questo è il "self-hosted OpenRouter" che molti stanno cercando. Un gateway si colloca tra le applicazioni e ogni provider di modelli. Le applicazioni usano una sola chiave, indirizzata al server. Le chiavi reali dei provider restano soltanto su quel server. È possibile limitare la spesa per chiave, indirizzare applicazioni diverse verso modelli diversi e registrare ogni richiesta in un unico punto.
LiteLLM è la scelta più comune perché espone un'API compatibile con OpenAI e inoltra le richieste ad Anthropic, Ollama e alla maggior parte degli altri provider tramite lo stesso endpoint. Eseguilo in Docker usando un file di configurazione.
model_list:
- model_name: claude
litellm_params:
model: anthropic/claude-sonnet-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: local
litellm_params:
model: ollama/qwen3:8b
api_base: http://127.0.0.1:11434Salvalo come litellm_config.yaml e avvia il proxy. È in ascolto sulla porta 4000.
docker run -v $(pwd)/litellm_config.yaml:/app/config.yaml \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-e LITELLM_MASTER_KEY=sk-1234 \
-p 4000:4000 docker.litellm.ai/berriai/litellm:latest \
--config /app/config.yamlLITELLM_MASTER_KEY è la credenziale amministrativa. Trattala quindi come una password di root e non usare il valore di esempio in produzione. Chiama il proxy esattamente come chiameresti un'API ospitata.
curl http://localhost:4000/v1/chat/completions \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"model": "claude","messages": [{"role": "user","content": "Say hello in five words."}]}'Una risposta corretta è un normale JSON con un array choices. Un 401 indica un errore di autenticazione. In questa configurazione, la causa più comune è un header Authorization che non corrisponde alla master key. LiteLLM restituisce lo stesso errore anche per una virtual key non valida. Anche una chiave del provider rifiutata dal provider, ad esempio a causa di un ANTHROPIC_API_KEY errato, genera un errore di autenticazione; nel messaggio compare il nome del provider nella forma <Provider>Exception. Un 400 che indica il modello spesso significa che model nella richiesta non corrisponde ad alcun model_name nel file di configurazione. LiteLLM restituisce 400 anche quando una richiesta è troppo lunga per la finestra di contesto del modello. Leggi quindi il messaggio di errore prima di modificare la configurazione.
Il motivo per costruire questa soluzione invece di chiamare direttamente Anthropic è il limite di spesa. Crea una virtual key separata per ogni applicazione, ciascuna con il proprio budget.
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["claude"], "max_budget": 100}'Le virtual key e i budget richiedono un database Postgres dietro il proxy. Il docker run precedente non ne usa alcuno. Aggiungi quindi prima -e DATABASE_URL=postgresql://user:password@host:5432/litellm. Senza un database, questa chiamata restituisce No connected db.
Quella chiave può spendere cento dollari e accedere a un solo modello, senza altri privilegi. Se un agent si comporta in modo anomalo alle tre del mattino, l'impatto resta limitato a una chiave invece di coinvolgere l'intero account. Questo approccio, insieme al relativo monitoraggio, è l'argomento di tenere sotto controllo i costi degli agent su un VPS. Se stai ancora valutando se pagare per token, il confronto dei costi tra API e abbonamento illustra i calcoli.
Nota anche ciò che il gateway non fa. Non rende Claude locale e non nasconde i prompt ad Anthropic. Le richieste continuano a lasciare il server e a raggiungere il provider. Il vantaggio consiste nel controllo di chiavi, spesa, instradamento e log.
Esegui Claude Code sul tuo VPS
Il terzo desiderio è il più semplice da soddisfare. Claude Code è un client. Si installa come singolo binario nativo e comunica con l'API tramite HTTPS. Installarlo su un server di tua proprietà significa che l'agente continua a lavorare dopo lo spegnimento del laptop e che il suo raggio d'azione è limitato a un sistema che puoi ricreare, invece di coinvolgere la tua macchina principale.
npm install -g @anthropic-ai/claude-code
claude --versionIl pacchetto npm richiede Node.js 22 o una versione successiva, anche se con una versione precedente di Node.js l'installazione stampa soltanto un EBADENGINE avviso e termina comunque correttamente. Il programma di installazione nativo consigliato da Anthropic, curl -fsSL https://claude.ai/install.sh | bash, non richiede affatto Node.js. In entrambi i casi, il binario claude installato non viene eseguito tramite Node. Anthropic indica 4 GB di RAM come requisito minimo, quindi dimensiona il VPS di conseguenza.
Eseguilo all'interno di tmux, in modo che la perdita della connessione SSH non interrompa un'attività lunga. Questa configurazione, inclusa la gestione della sessione, è descritta in eseguire Claude Code su un VPS con tmux. Assegna all'agente un utente dedicato senza privilegi e leggi le regole di sicurezza per eseguire Claude Code su un server prima di concedergli l'accesso in scrittura a dati o risorse importanti.
Questa è l'installazione autonoma dell'agente, non del modello. È importante essere precisi su questo punto, perché spesso le due cose vengono confuse. Tu controlli il processo, il filesystem, il traffico in uscita e i log. L'inferenza resta sotto il controllo di Anthropic.
Quanto costa realmente ogni opzione
I prezzi cambiano, quindi considera questi valori come un ordine di grandezza, non come un preventivo. Al 17 ottobre 2026, Claude Sonnet 5.5 è indicato a 2 $ per milione di token di input e 10 $ per milione di token di output, mentre Claude Opus 5.5 è indicato rispettivamente a 4 $ e 20 $. Sonnet 5, il modello usato nella configurazione del gateway riportata sopra, è stato sostituito da Sonnet 5.5 ma non è deprecato: la pagina di Anthropic relativa alla deprecazione dei modelli lo indica come Active, con ritiro non previsto prima del 30 giugno 2027. Il costo resta di 2 $ e 10 $, mentre Opus 5 resta indicato a 5 $ e 25 $. Un modello locale non ha costi per token, ma comporta il costo mensile del server, che continua a essere addebitato anche quando non lo utilizzi.
Il punto di pareggio arriva prima di quanto molti pensino. Un VPS con memoria sufficiente per eseguire un modello open utile ha un costo mensile reale e resta inattivo per la maggior parte del tempo. Se l'utilizzo è discontinuo, l'API ospitata è generalmente più economica. Se l'utilizzo è costante o i dati non possono uscire dalla tua rete, il modello locale è preferibile sotto entrambi gli aspetti.
La risposta mista più realistica è quella a cui arrivano molte organizzazioni. Esegui localmente un modello open per le attività ad alto volume e bassa difficoltà. Inoltra le richieste complesse a un modello frontier ospitato. Metti un gateway davanti a entrambi, così le applicazioni non devono sapere quale modello stanno usando e puoi spostare il limite tra i due senza modificare il codice applicativo. Questa architettura è la versione pratica di «Claude autogestito» e, a differenza della versione letterale, è realizzabile. Se vuoi gestire autonomamente anche l'intero stack dell'agente, la panoramica degli agenti AI autogestiti descrive le opzioni disponibili.
FAQ
Posso scaricare i pesi del modello Claude ed eseguirli localmente?
No. Anthropic non ha mai rilasciato i pesi di alcun modello Claude e non esiste alcuna licenza che ne consenta l'hosting autonomo. Qualsiasi elemento pubblicizzato online come "modello Claude" scaricabile è un modello diverso con un nome fuorviante oppure un wrapper che chiama l'API. Se richiede una chiave API, non è locale.
Qual è il modello aperto più simile a Claude?
Non esiste una corrispondenza esatta e i modelli leader cambiano ogni pochi mesi. Le famiglie con pesi aperti che vale la pena testare sono Llama, Qwen, Mistral, Gemma e DeepSeek. Per la generazione di riepiloghi, la classificazione e le semplici modifiche al codice, un buon modello aperto con 8-14 miliardi di parametri è realmente utile. Nel ragionamento complesso su più passaggi e nell'uso agentico degli strumenti, il divario rispetto a un modello frontier ospitato è ancora ampio. Esegui i test sui tuoi prompt invece di affidarti a una leaderboard.
LiteLLM è un OpenRouter self-hosted?
Dal punto di vista funzionale sì, per quanto riguarda il routing e la gestione delle chiavi. LiteLLM viene eseguito sul tuo server, espone un unico endpoint compatibile con OpenAI e fa da proxy per Anthropic, Ollama e la maggior parte degli altri provider. Dopo aver collegato un database Postgres, puoi impostare limiti di spesa per chiave, oltre a configurare il routing dei modelli e avere un unico punto in cui consultare i log. Non fornisce però l'inferenza locale: le richieste a Claude vengono comunque inviate ad Anthropic.
Eseguire Claude Code sul mio server mantiene privato il mio codice?
No. Claude Code invia i contenuti dei file che legge all'API Anthropic, indipendentemente da dove viene eseguito il processo. Un VPS offre l'isolamento dell'agente, non la riservatezza dei contenuti. Assegna all'agente un utente dedicato senza privilegi, impediscigli di accedere alle credenziali e ai repository non pertinenti e considera tutto ciò che può leggere come contenuto che lascia il server.