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:
Connettività istantanea senza configurazione.
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
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.
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:
http://connectXX.trooper.ai:PORT
Esempio visualizzato nella dashboard:
In questa visualizzazione:
🤖 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.
Assegni la Sua applicazione a 0.0.0.0 utilizzando una qualsiasi delle porte pubbliche assegnate:
Esempio Flask:
flask run --host=0.0.0.0 --port=11307
Esempio Gradio:
app.launch(server_name="0.0.0.0", server_port=11307)
Risultato:
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.
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:
0.0.0.0:8080
2️⃣ Installare il Webproxy Template
3️⃣ Configuri:
8080)4️⃣ HTTPS pubblico creato:
https://<token>.secure.trooper.ai
📌 Vantaggi:
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
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
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.
Invii il tipo di contenuto corretto:
text/event-streamapplication/x-ndjsonIncludere un output di heartbeat ogni 15–30 secondi.
Mantenga attivo il ping/pong (20–30s tipico).
Assistenza Range richieste e stato 206.
Add Content-Disposition: attachment quando necessario.
Esempio di richiesta SSE con curl:
curl -N -H "Accept: text/event-stream" https://<ssl-id>.secure.trooper.ai/api/stream
Esempio NDJSON:
curl -N -H "Accept: application/x-ndjson" https://<ssl-id>.secure.trooper.ai/generate
Esempio di download riprendibile:
curl -O -H "Range: bytes=0-" https://<ssl-id>.secure.trooper.ai/files/model.bin
Interno:
ss -tlnp | grep :11307
Esterno:
curl http://connectXX.trooper.ai:11307
Le porte grezze richiedono solo:
0.0.0.0I Ports pubblici vengono assegnati automaticamente e visualizzati nel cruscotto accanto agli installazioni dei template.
Per i Suoi progetti personali, utilizzi:
8080→ Webproxy → HTTPS endpoint
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.
App interna:
uvicorn.run("main:app", host="0.0.0.0", port=8080)
HTTPS pubblico:
https://<token>.secure.trooper.ai
Legga di più: Web Proxy with SSL