🌍 HTTPS-toegang (Hoe krijg je toegang tot je Blib via SSL)

Deze pagina legt uit hoe je applicaties op Trooper.AI GPU servers publiekelijk bereikbaar kunt maken. Je kunt dashboards, API's, AI-apps, modeleindpunten en gebruikersinterfaces die draaien in templates of je eigen projecten publiceren.

Uw GPU Server Blibs bieden 10 tot 40 publieke poorten die toegankelijk zijn via het internet. Elke service die aan deze poorten is gekoppeld, is bereikbaar vanaf buiten het interne netwerk met behulp van de publieke hostnaam van uw server.

Trooper.AI biedt twee toegangspaden en een netwerkbeveiligingslaag:

1️⃣ Directe Ruwe Publieke Poorten

Directe connectiviteit zonder installatie.

2️⃣ πŸ” Veilige HTTPS via Webproxy (Aanbevolen)

Web Proxy met SSL

3️⃣ Configureer Firewall voor Beperkte Toegang

Beperk de toegang tot uw GPU-server door toegestane IP-netwerken of individuele IP-adressen op te geven, zoals uw bedrijfsnetwerk of webserver. Dit beperkt externe toegang en verhoogt de beveiliging. Meer details zijn beschikbaar hier: πŸ›‘οΈ Ingebouwde firewall voor uw GPU-server


🌐 Openbare Poorttoewijzing

Elke GPU-server bevat standaard publieke TCP+UDP-poorten die aan sjablonen zijn toegewezen en beschikbaar zijn voor aangepaste apps. UDP moet worden geactiveerd via het management dashboard als dit echt nodig is.

Directe URL:

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

Voorbeeld dashboardweergave:

Public Ports on Template Installs
Openbare Poorten op Template Installaties

In dit overzicht:

  • Publieke poortbereiken
  • Publieke hostnamen
  • Sjabloonnaam
  • Sloticoon = beveiligde HTTPS beschikbaar
  • Info = documentatielink
  • Instellingen = configuratie

πŸ€– Poortdoorvoer is een geautomatiseerd proces met ingebouwde controles. Geef uw AI Agent de instructie zich te concentreren op poortconfiguratie en binding, aangezien poortdoorvoer correct functioneert. Er kunnen geen NAT-problemen optreden als de status van uw machine groen is.


πŸš€ Directe Ruwe Poorttoegang (Snelle Optie)

Koppel uw applicatie aan 0.0.0.0 met behulp van een van de toegewezen publieke poorten:

Voorbeeld Flask:

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

Voorbeeld Gradio:

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

Resultaat:

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

Deze aanpak blijft beschikbaar voor snelle tests en intern gemak. Raw poorten zijn niet versleuteld; lees meer over HTTPS.


πŸ” Beveiligde HTTPS met Webproxy (Aanbevolen)

Voor productie, authenticatie, gebruikersinterfaces, embeddings, monitoring dashboards en API-gebruik:

1️⃣ Voer app intern uit op een veilige interne poort:

Code
0.0.0.0:8080

2️⃣ Installeer de Webproxy Template

3️⃣ Configureren:

  • interne poort β†’ app-poort (bijv. 8080)
  • externe Webproxy-poort β†’ geselecteerd bij installatie

4️⃣ Openbare HTTPS gemaakt:

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

πŸ“Œ Voordelen:

  • automatische SSL-certificaten
  • WebSocket-ondersteuning
  • alleen interne routing (veilige paden)
  • geen nginx-configuratie nodig
  • geen lokale reverse proxies vereist

Elk sjabloon bevat een voorgeconfigureerde, beveiligde Webproxy met bijbehorende eindpunt. Om aangepaste applicaties die op uw GPU-server zijn geΓ―nstalleerd veilig bloot te leggen, gebruikt u het Web Proxy-sjabloon met SSL:


⚠️ Gebruik van poort 80 / 443

Directe binding aan poorten 80 or 443 wordt niet automatisch blootgesteld aan het publieke internet. Gebruik de Webproxy-template om HTTPS-eindpunten in te stellen. Het installeren van aangepaste SSL-certificaten wordt niet ondersteund; we raden aan om poort 8080 voor uw applicatie te gebruiken, een veelvoorkeur keuze onder ontwikkelaars.

Web Proxy met SSL


⏱️ Proxy Time-out Klassen

De HTTPS/Webproxy routinglaag past het gedrag automatisch aan op basis van het type verkeer. Dit zorgt ervoor dat korte interactieve oproepen snel blijven, terwijl AI/streamingtaken stabiel blijven.

Verkeerstype Detectiemethode Time-out
Standaard HTTP standaard request/response 60s
Chat / Streaming (SSE/NDJSON) /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / NDJSON headers 10 minuten
Grote downloads bestandstype Range headers, bijlagen, binaire overdracht 30 minuten
WebSockets WS/WSS upgrade detectie geen idle-timeout

πŸ’‘ De proxy past zich dynamisch aan als de responsomstandigheden veranderen. Voorbeeld: Een bestand serveren = automatische upgrade naar downloadtimeout.

πŸ“ Toepassingsvereisten

Voor SSE/NDJSON Streaming

Stuur het juiste content type:

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

Stuur elke 15–30 seconden een heartbeat-output.

Voor WebSockets

Houd ping/pong actief (20–30s gebruikelijk).

Voor Downloads

Ondersteuning Range verzoeken en status 206. Add Content-Disposition: attachment indien nodig.


πŸ§ͺ Stream modi testen

Voorbeeld SSE curl:

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

Voorbeeld NDJSON:

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

Voorbeeld van een hervattbare download:

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

πŸ§ͺ Poortbereikbaarheidstests

Intern:

bash
ss -tlnp | grep :11307

Extern:

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

Raw poorten vereisen alleen:

  • actieve app
  • binding 0.0.0.0
  • correcte poortgebruik

πŸ” Publieke Poorten & Templates

Publieke poorten worden automatisch toegewezen en worden weergegeven in het dashboard naast de template-installaties.

Gebruik voor eigen projecten:

Code
8080β†’ Webproxy β†’ HTTPS endpoint

🧯 Probleemoplossing

Veelvoorkomende problemen bij het tot stand brengen van een volledig functionele HTTPS-verbinding zijn vaak gerelateerd aan eenvoudige configuratiedetails.

❌ Niet bereikbaar: controleer poort & binding
❌ Verkeerde poort: gebruik alleen toegewezen poorten
❌ Geen HTTPS: gebruik de Webproxy-sjabloon
❌ Firewall in container: uitschakelen of aanpassen
❌ UDP niet geactiveerd: TCP is onze standaard, activeer UDP via het management dashboard als je UDP echt nodig hebt
❌ Lange berekeningsjobs: stream output of gebruik SSE/NDJSON modus
❌ Eigen domein proberen te verbinden: we ondersteunen geen eigen domeinen.


πŸ§‘β€πŸ’» Voorbeeld: FastAPI met Webproxy

Interne app:

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

Publieke HTTPS:

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

Web Proxy met SSL


πŸ“Ž Nuttige links