Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Panoramica

Introduzione al deployment di LibreChat, con un confronto tra vari servizi di hosting e di rete

Benvenuti nella guida introduttiva al deployment di LibreChat. Questo documento fornisce una panoramica iniziale, presentando una tabella comparativa e riferimenti a guide dettagliate, garantendo una comprensione approfondita delle strategie di deployment.

In questa guida, esplorerai varie opzioni per distribuire in modo efficiente LibreChat in una varietà di ambienti, personalizzati per soddisfare i tuoi requisiti specifici.

Requisiti minimi

I requisiti minimi per eseguire LibreChat:

  • 1 GiB di RAM
  • 1 vCPU

Nota: Con tutto abilitato, potresti prendere in considerazione l'aumento della RAM a 2GB per un funzionamento più fluido.

Tabella comparativa

Nota che l'etichetta "Recommended" indica che questi servizi sono ben documentati, ampiamente utilizzati all'interno della community o sono stati distribuiti con successo da un numero significativo di utenti. Di conseguenza, siamo in grado di offrire un supporto migliore per la distribuzione di LibreChat su questi servizi.

Servizi di Hosting

ServizioDominioProControCommentiConsigliato
DigitalOceanInfrastruttura CloudInterfaccia intuitiva, prezzi stabiliImpronta di rete minoreOttimale per appassionati e piccole/medie imprese✅ Noto, Affidabile
HuggingFaceSoluzioni AI/MLSpecializzazione in ML/NLPFocalizzato su applicazioni MLEccellente per iniziative AI/ML✅ Gratuito
RailwayDistribuzione AppDistribuzione semplificata delle appAccesso limitato ai containerMolto facile per iniziare✅ Facile

Servizi di rete

ServizioDominioProControCommenti
CloudflarePrestazioni Web e SicurezzaCDN globale, protezione DDoS, facilità d'usoL'assistenza clienti può essere lentaLa scelta migliore per migliorare la sicurezza
NginxWeb Server, Reverse ProxyAlte prestazioni, stabilità, efficienza delle risorseConfigurazione manuale, estensioni limitateAmpiamente utilizzato per l'hosting grazie alle sue prestazioni
ngrokTunneling SicuroFacile da usare, piano gratuito disponibile, tunneling sicuroRichiede il download del client, routing di dominio complessoUtile per test di sviluppo locale
TraefikReverse Proxy, Load BalancerRilevamento automatico dei servizi, supporto nativo per clusterLa configurazione può essere complessa per i principiantiIdeale per microservizi e ambienti dinamici

Cloudflare è nota per la sua vasta rete che velocizza e protegge i servizi internet, con un'interfaccia utente intuitiva e solide opzioni di sicurezza nei piani premium.

Ngrok è apprezzato per la sua semplicità e per la capacità di esporre rapidamente server locali su internet, rendendolo ideale per demo e test.

Nginx è un server web ad alte prestazioni, efficiente nella gestione delle risorse e che offre stabilità. Tuttavia, richiede una configurazione manuale e dispone di meno moduli ed estensioni rispetto ad altri server.

Traefik è rinomato per i suoi aggiornamenti di configurazione automatici e la facilità di distribuzione in ambienti containerizzati, risultando interessante per i DevOps grazie alla sua integrazione con vari back-end e alla riconfigurazione dinamica. Eccelle nelle architetture a microservizi, ma può presentare delle difficoltà per chi è alle prime armi con le tecnologie cloud-native.

Integrazione e configurazione dei provider cloud

Il livello di integrazione con i fornitori cloud varia: dalle piattaforme che consentono distribuzioni di LibreChat con un solo clic come Railway, passando per piattaforme che sfruttano strumenti di Infrastructure as Code come Azure con Terraform, fino a configurazioni VM più tradizionali che richiedono una configurazione manuale, esemplificate da DigitalOcean, Linode e Hetzner.

Considerazioni essenziali sulla sicurezza

Avventurarsi nel panorama digitale rivela numerose minacce alla sicurezza e all'integrità delle tue risorse online. Per salvaguardare il tuo dominio digitale, è fondamentale implementare solide misure di sicurezza.

Quando si distribuiscono applicazioni su scala globale, è essenziale considerare i seguenti fattori chiave per garantire la protezione delle proprie risorse digitali:

  1. Crittografia dei dati in transito: L'implementazione di HTTPS con certificati SSL è fondamentale per proteggere i dati da intercettazioni e attacchi di tipo eavesdropping.
  2. Implicazioni globali sull'accessibilità: Comprendi le implicazioni della distribuzione della tua applicazione a livello globale, inclusi i requisiti legali e di conformità che variano in base alla regione.
  3. Configurazione sicura: Assicurati che la tua applicazione sia configurata in modo sicuro, includendo l'uso di protocolli sicuri, autenticazione sicura e meccanismi di autorizzazione.

Se scegli di utilizzare servizi IaaS o Tunnel per il tuo deployment, potresti dover utilizzare un reverse proxy come Nginx, Traefik o Cloudflare, per citarne alcuni.

Investire nelle misure di sicurezza appropriate è fondamentale per salvaguardare le proprie risorse digitali e garantire il successo della propria distribuzione globale.

Scelta del fornitore Cloud (es. piattaforma)

La scelta di un fornitore cloud per il "deployment reale" è fondamentale, poiché influisce su costi, prestazioni, sicurezza e scalabilità. È necessario considerare fattori come la posizione dei data center, la conformità agli standard di settore, la compatibilità con gli strumenti esistenti e l'assistenza clienti.

Ci sono molte opzioni che differiscono per molti aspetti. In questa sezione puoi trovare alcune opzioni utilizzate dal team e dalla community che possono aiutarti nel tuo primo deployment. Una volta acquisita maggiore conoscenza sull'utilizzo della tua applicazione e sul tuo pubblico, sarai probabilmente in grado di decidere quale fornitore cloud è più adatto a te a lungo termine.

Come già detto, i provider cloud e le piattaforme differiscono sotto molti aspetti. Ai nostri fini, possiamo presumere che nel nostro contesto le tue preoccupazioni principali siano la facilità d'uso, la sicurezza e il costo (iniziale). Nel caso in cui tu abbia ulteriori preoccupazioni come la scalabilità, esperienze pregresse con una qualsiasi delle piattaforme o qualsiasi altra funzionalità specifica, probabilmente saprai meglio quale piattaforma fa al caso tuo e potrai passare direttamente alle informazioni che stai cercando senza seguire alcuna guida specifica.

Scegliere l'opzione di deployment giusta per le tue esigenze

Le opzioni di distribuzione sono elencate in ordine, dal massimo sforzo e controllo al minimo sforzo e controllo.

Ogni opzione di deployment ha i suoi vantaggi e svantaggi e la scelta dipende in ultima analisi dalle esigenze specifiche del tuo progetto.

1. IaaS (Infrastructure as a Service)

Infrastructure as a Service (IaaS) si riferisce a un modello di cloud computing che fornisce risorse informatiche fondamentali, come server virtuali, rete e archiviazione, su una base di pagamento a consumo. IaaS consente alle organizzazioni di noleggiare e accedere a queste risorse tramite Internet, senza la necessità di investire in hardware fisico e di mantenerlo. Questo modello offre scalabilità, flessibilità e risparmi sui costi, oltre alla capacità di distribuire e gestire rapidamente e facilmente le risorse infrastrutturali in risposta alle mutevoli esigenze aziendali.

  • DigitalOcean: Interfaccia intuitiva con prezzi prevedibili.
  • Linode: Rinomato per l'eccellente assistenza clienti e la struttura dei prezzi semplice.

Per IaaS consigliamo Docker Compose

Perché Docker Compose? Consigliamo Docker Compose per distribuzioni coerenti. Questa guida illustra chiaramente ogni passaggio per una facile distribuzione: Guida all'installazione remota Docker - Linux

Nota: Ci sono due file docker compose nel repository

  1. docker-compose.yml per Docker orientato allo sviluppo
  2. Docker compose orientato al deployment deploy-compose.yml

La differenza principale è che deploy-compose.yml include Nginx, rendendo la sua configurazione interna a Docker.

Consulta la Guida Nginx per maggiori informazioni

2. IaC (Infrastructure as Code)

Infrastructure as Code (IaC) si riferisce alla pratica di gestire e fornire infrastrutture informatiche attraverso file di definizione leggibili dalla macchina, al contrario della configurazione dell'hardware fisico o di strumenti di configurazione interattivi. Questo approccio promuove la riproducibilità, la disponibilità e la scalabilità, in particolare nei moderni ambienti cloud. IaC consente l'automazione del deployment, della configurazione e della gestione dell'infrastruttura, portando a un provisioning delle risorse più rapido, coerente e affidabile.

  • Azure: Servizi completi adatti per distribuzioni a livello aziendale

Nota: Digital Ocean, Linode e Hetzner supportano anch'essi IaC. Sebbene manchi una guida specifica, puoi provare ad adattare la Azure Guide per Terraform e aiutarci a contribuire al suo miglioramento.

3. PaaS (Platform as a Service)

Platform as a Service (PaaS) è un modello di cloud computing che offre un ambiente di sviluppo e distribuzione nel cloud. Fornisce una piattaforma che consente agli sviluppatori di creare, testare e distribuire applicazioni senza la necessità di gestire l'infrastruttura sottostante. PaaS include solitamente una gamma di risorse come database, middleware e strumenti di sviluppo, consentendo agli utenti di fornire da semplici app basate su cloud a sofisticate applicazioni aziendali. Questo modello consente un time-to-market più rapido, costi inferiori e una manutenzione e scalabilità più semplici, poiché il fornitore di servizi è responsabile della manutenzione dell'infrastruttura e il cliente può concentrarsi sulla creazione, distribuzione e gestione delle proprie applicazioni.

  • Hugging Face: Su misura per progetti di machine learning e NLP.
  • Render: Semplifica le distribuzioni con pipeline CI/CD integrate.
  • Heroku: Ottimale per startup e scenari di distribuzione rapida.

4. Distribuzione con un clic (PaaS)

  • Railway: Soluzione di deployment "one-click" molto diffusa
  • Zeabur: Pioniere di soluzioni di distribuzione "one-click" senza sforzo.

Altro / Servizi di rete

1. Tunneling

I servizi di tunneling ti consentono di esporre un server di sviluppo locale su Internet, rendendolo accessibile tramite un URL pubblico. Questo è particolarmente utile per condividere il lavoro, effettuare test e integrare servizi di terze parti. Ti permette di distribuire il tuo computer di sviluppo per i test o per un'installazione on-prem.

  • Ngrok: Facilita il tunneling locale sicuro verso internet.
  • Cloudflare: Migliora le prestazioni e la sicurezza web.

2. Servizio DNS

  • Il servizio DNS di Cloudflare viene utilizzato per gestire e instradare il traffico internet verso le destinazioni corrette, traducendo i nomi di dominio leggibili dagli esseri umani in indirizzi IP leggibili dalle macchine. Cloudflare è un fornitore di questo servizio e offre una vasta gamma di funzionalità come sicurezza, prestazioni e affidabilità. Il servizio DNS di Cloudflare fornisce un'interfaccia intuitiva per la gestione dei record DNS e offre funzionalità avanzate come la gestione del traffico, DNSSEC e la protezione DDoS.

vedi anche: Guida a Cloudflare

Conclusione

In conclusione, l'introduzione alla nostra guida al deployment fornisce una panoramica delle varie opzioni e considerazioni per il deployment di LibreChat. È importante valutare attentamente le proprie esigenze e scegliere il percorso che meglio si allinea agli scopi e agli obiettivi della propria organizzazione. Che si dia priorità alla facilità d'uso, alla sicurezza o alla convenienza, la nostra guida fornisce le informazioni necessarie per aiutarti a eseguire con successo il deployment di LibreChat e a raggiungere il risultato desiderato. Ci auguriamo che questa guida possa essere una risorsa preziosa per te durante tutto il tuo percorso di deployment.

Ricorda, la nostra community è qui per aiutarti. Se dovessi riscontrare difficoltà o avere domande, il nostro Discord channel e la troubleshooting discussion sono risorse eccellenti per supporto e consigli.

Com’è questa guida?