Stack LLM Self-Hosted su GPU
Workflow LLM con Ollama, Open WebUI e integrazione VS Code — profili locali e cloud gestiti in modo controllato
Context
Problem and context
L'uso di LLM commerciali in contesti professionali solleva questioni di privacy, costo e dipendenza da servizi esterni. Il progetto nasce per costruire uno stack LLM completamente locale, utilizzando hardware disponibile nel homelab, mantenendo le performance adeguate per l'uso quotidiano.
Solution
Implemented solution
Ollama come runtime e punto di integrazione, Open WebUI come interfaccia conversazionale, integrazione con VS Code tramite Continue per il supporto al coding. Il setup distingue profili locali e profili cloud, esposti solo tramite Cloudflare Zero Trust con autenticazione.
Infrastruttura GPU
La VM principale ha in passthrough la NVIDIA A10 da 24 GB di VRAM — sufficiente per modelli fino a 14B parametri in FP16 o 30B+ in quantizzazione Q4. Per workload secondari e test viene usata la AMD RX580 tramite llama.cpp con backend Vulkan, che permette inferenza anche su GPU non NVIDIA.
I modelli principali in uso:
- deepseek-r1:14b — reasoning e compiti complessi
- deepseek-coder:6.7b — code completion e review
- llama3.1:8b — uso quotidiano, risposta rapida
- mistral:7b — italiano, sintesi, scrittura
Accesso sicuro e integrazione
Open WebUI è esposto tramite Cloudflare Access con OTP — accessibile da qualsiasi dispositivo autenticato senza VPN. L'API Ollama rimane su localhost e non è mai esposta direttamente.
VS Code + Continue usa un profilo locale (LAN) per il coding quotidiano e un profilo remoto (via Tunnel) quando si lavora da fuori sede. La latenza sul profilo locale è <100ms per token con deepseek-coder:6.7b.
Outcomes