🌍 Accesso HTTPS (Come accedere al Suo Blib tramite SSL)

Questa pagina spiega come rendere pubblicamente accessibili le applicazioni sui GPU Server di Trooper.AI. Lei può pubblicare dashboard, API, app AI, endpoint di modelli e interfacce utente in esecuzione all'interno di template o dei Suoi progetti.

I Suoi GPU Server Blibs offrono da 10 a 40 porte pubbliche esposte a internet. Qualsiasi servizio legato a queste porte sarà accessibile dall’esterno della rete interna utilizzando l’hostname pubblico della Sua macchina.

Trooper.AI offre due percorsi di accesso più uno strato di sicurezza di rete:

1️⃣ Ports pubblici raw diretti

Connettività istantanea senza configurazione.

2️⃣ 🔐 HTTPS sicuro tramite Webproxy (Consigliato)

Esposizione crittografata di livello produzione per app web e API. Attiva su tutti i templates per impostazione predefinita e per le proprie applicazioni utilizzi questo: Web Proxy con SSL

3️⃣ Configurare Firewall per Accesso Limitato

Limiti l'accesso alla Sua macchina GPU specificando reti IP autorizzate o indirizzi IP singoli, come la rete aziendale o il Suo server web. Ciò riduce l’accesso esterno e migliora la sicurezza. Ulteriori dettagli sono disponibili qui: 🛡️ Trooper.AI Firewall di livello rete personalizzabile

Le configurazioni di rete Linux richiedono competenze specialistiche a causa della loro intrinseca complessità. Mentre il nostro firewall protegge il traffico esterno, modificare le impostazioni di rete interne richiede una valutazione attenta — soprattutto quando si lavora con sistemi avanzati come Linux. Sconsigliamo vivamente di tentare aggiustamenti complessi a meno che Lei non possieda una comprovata esperienza tecnica. Strumenti automatizzati, inclusi agenti AI, possono generare conseguenze impreviste nelle configurazioni di rete e spesso fornire raccomandazioni errate. Per modifiche critiche che interessano la Sua macchina, Le consigliamo di consultare Support Team prima di procedere per garantire stabilità e conformità alle migliori pratiche.


🌐 Assegnazione porte pubbliche

Ogni GPU Server include porte TCP+UDP pubbliche assegnate automaticamente ai template e disponibili per app personalizzate. L'UDP deve essere attivato tramite il pannello di gestione solo se necessario.

URL diretta grezza:

Codice
http://connectXX.trooper.ai:PORT

Esempio visualizzato nella dashboard:

Public Ports on Template Installs
Porti pubblici sulle installazioni di Template

In questa visualizzazione:

  • Intervalli di porte pubbliche
  • Nomi host pubblici
  • Nomi dei template
  • Icona di lucchetto = disponibile HTTPS sicuro
  • Info = collegamento alla documentazione
  • Impostazioni = configurazione

🤖 Il port forwarding è un processo automatizzato con controlli integrati. La preghiamo di istruire il Suo AI Agent a concentrarsi sulla configurazione e l’associazione dei Ports, poiché il port forwarding funziona correttamente. Non sono possibili problemi di NAT se lo stato della Sua macchina è verde.


🚀 Accesso Diretto alle Porte Grezze (Opzione Veloce)

Assegni la Sua applicazione a 0.0.0.0 utilizzando una qualsiasi delle porte pubbliche assegnate:

Esempio Flask:

bash
flask run --host=0.0.0.0 --port=11307

Esempio Gradio:

python
app.launch(server_name="0.0.0.0", server_port=11307)

Risultato:

Codice
http://connectXX.trooper.ai:11307

Questo approccio rimane disponibile per test rapidi e comodità interna. Le porte grezze non sono crittografate; legga di più per HTTPS.


🔐 HTTPS sicuro con Webproxy (Raccomandato)

Per ambienti di produzione, autenticazione, interfacce utente, embeddings, cruscotti di monitoraggio e utilizzo dell'API:

1️⃣ Eseguire l’app internamente su una porta interna sicura:

Codice
0.0.0.0:8080

2️⃣ Installare il Webproxy Template

3️⃣ Configuri:

  • porta interna → porta dell’app (e.g. 8080)
  • porta esterna Webproxy → selezionata durante l'installazione

4️⃣ HTTPS pubblico creato:

Codice
https://<token>.secure.trooper.ai

📌 Vantaggi:

  • certificati SSL automatici
  • supporto WebSocket
  • routing interno esclusivo (percorso sicuro)
  • nessuna configurazione di Nginx necessaria
  • Non sono richiesti proxy inversi locali

Ogni modello include un Webproxy pre-configurato e sicuro con endpoint associato. Per esporre in modo sicuro applicazioni personalizzate ospitate sulla Sua macchina GPU, utilizzi il modello Webproxy: Web Proxy con SSL


⚠️ Uso delle porte 80 / 443

Collegamento diretto alle porte 80 or 443 Non è automaticamente esposta a Internet pubblica. Utilizzi il template Webproxy per stabilire endpoint HTTPS. L'installazione di certificati SSL personalizzati non è supportata. Il collegamento di domini personalizzati non è supportato. Le raccomandiamo di utilizzare la porta 8080 per la Sua applicazione, una scelta comunemente preferita tra gli sviluppatori.

Legga di più: Web Proxy with SSL


⏱️ Classi di Timeout del Proxy

Lo strato di instradamento HTTPS/Webproxy regola automaticamente il comportamento in base al tipo di traffico. Ciò garantisce che le chiamate interattive brevi rimangano veloci, mentre i lavori di AI/streaming mantengono la stabilità.

Tipo di traffico Metodo di rilevamento Timeout
HTTP standard richiesta/risposta standard 60s
Chat / Streaming (SSE/NDJSON) /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / intestazione NDJSON 10 minuti
Download di grandi dimensioni tipo simile a file, Range intestazioni, allegati, trasferimento binario 30 minuti
WebSocket rilevamento aggiornamento WS/WSS nessun timeout di inattività

💡 Il proxy si regola dinamicamente se le condizioni di risposta cambiano. Esempio: Servire un file = automatico upgrade al timeout di download.

📝 Requisiti dell'applicazione

Per lo streaming con SSE/NDJSON

Invii il tipo di contenuto corretto:

  • text/event-stream
  • application/x-ndjson

Includere un output di heartbeat ogni 15–30 secondi.

Per WebSockets

Mantenga attivo il ping/pong (20–30s tipico).

Per i download

Assistenza Range richieste e stato 206. Add Content-Disposition: attachment quando necessario.


🧪 Test delle modalità di streaming

Esempio di richiesta SSE con curl:

bash
curl -N -H "Accept: text/event-stream" https://<ssl-id>.secure.trooper.ai/api/stream

Esempio NDJSON:

bash
curl -N -H "Accept: application/x-ndjson" https://<ssl-id>.secure.trooper.ai/generate

Esempio di download riprendibile:

bash
curl -O -H "Range: bytes=0-" https://<ssl-id>.secure.trooper.ai/files/model.bin

🧪 Test di raggiungibilità delle porte

Interno:

bash
ss -tlnp | grep :11307

Esterno:

bash
curl http://connectXX.trooper.ai:11307

Le porte grezze richiedono solo:

  • applicazione in esecuzione
  • associazione 0.0.0.0
  • utilizzo corretto della porta

🔁 Porte Pubbliche e Modelli

I Ports pubblici vengono assegnati automaticamente e visualizzati nel cruscotto accanto agli installazioni dei template.

Per i Suoi progetti personali, utilizzi:

Codice
8080→ Webproxy → HTTPS endpoint

🧯 Risoluzione dei problemi

Problemi comuni riscontrati durante l'impostazione di una connessione HTTPS pienamente funzionale sono spesso legati a semplici dettagli di configurazione.

❌ Non raggiungibile: verifichi il port e la binding
❌ Porta errata: usi solo le porte assegnate
❌ Nessun HTTPS: usi il modello Webproxy
❌ Firewall all'interno del container: disabilitare o regolare
❌ UDP non attivato: TCP è il nostro protocollo predefinito, attivi UDP tramite il cruscotto di gestione se Lei ha davvero bisogno di UDP
❌ Operazioni di calcolo lunghe: trasmetta l’output in streaming o utilizzi il formato SSE/NDJSON
❌ Tentativo di connessione con un dominio proprio: non supportiamo domini propri.


🧑‍💻 Esempio: FastAPI con Webproxy

App interna:

python
uvicorn.run("main:app", host="0.0.0.0", port=8080)

HTTPS pubblico:

Codice
https://<token>.secure.trooper.ai

Legga di più: Web Proxy with SSL


📎 Collegamenti utili