🌍 HTTPS-adgang (Sådan får du adgang til din Blib via SSL)

Denne side forklarer, hvordan du gør applikationer på Trooper.AI GPU-servere offentligt tilgængelige. Du kan publicere dashboards, API'er, AI-apps, modelendepunkter og brugergrænseflader, der kører i skabeloner eller dine egne projekter.

Dine GPU Server Blibs leverer 10 til 40 offentlige porte eksponeret til internettet. Enhver service bundet til disse porte vil være tilgængelig udefra det interne netværk ved hjælp af din servers offentlige værtsnavn.

Trooper.AI tilbyder to adgangsveje plus et netværkssikkerhedslag:

1️⃣ Direkte rå offentlige porte

Øjeblikkelig forbindelse uden opsætning.

2️⃣ 🔐 Sikker HTTPS via Webproxy (Anbefales)

Web Proxy med SSL – sikker og professionel adgang til dine webapps og API'er. Aktiveret på alle maler som standard, men du kan også bruge det til egne applikationer.

3️⃣ Konfigurer Firewall for begrænset adgang

Begræns adgang til din GPU-server ved at angive tilladte IP-netværk eller individuelle IP-adresser, såsom dit virksomhedsnetværk eller webbserver. Dette indskrænker ekstern adgang og øger sikkerheden. Yderligere detaljer findes her: 🛡️ Naturlig brandmur før din GPU-Server


🌐 Offentlig portallokering

Hver GPU-server inkluderer offentlige TCP+UDP-porte, der automatisk tildeles skabeloner og er tilgængelige for brugerdefinerede apps. UDP skal aktiveres via administrationsdashboardet, hvis det er nødvendigt.

Rå direkte URL:

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

Eksempel på dashboard-visning:

Public Ports on Template Installs
Offentlige porte på skabeloninstallationer

I dette view:

  • Offentlige portområder
  • Offentlige værtsnavne
  • Skabelonsnavne
  • Låseikon = sikker HTTPS tilgængelig
  • Info = dokumentationslink
  • Indstillinger = konfiguration

🤖 Portvideresendelse er en automatiseret proces med indbyggede kontroller. Bed din AI-agent om at fokusere på portkonfiguration og binding, da portvideresendelse fungerer korrekt. Der kan ikke opstå NAT-problemer, hvis din maskines status er grøn.


🚀 Direkte rå portadgang (hurtig mulighed)

Bind din applikation til 0.0.0.0 ved hjælp af en af de tildelte offentlige porte:

Eksempel Flask:

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

Eksempel Gradio:

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

Resultat:

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

Denne tilgang er stadig tilgængelig for hurtig test og intern bekvemmelighed. Rå porte er ikke krypterede; læs mere om HTTPS.


🔐 Sikker HTTPS med Webproxy (Anbefalet)

Til produktion, autentificering, brugergrænseflader, indlejringer, overvågningsdashboards og API-brug:

1️⃣ Kør appen internt på en sikker intern port:

Kode
0.0.0.0:8080

2️⃣ Installer Webproxy-skabelonen

❸ Konfigurer:

  • intern port → app port (f.eks. 8080)
  • ekstern Webproxy-port → valgt ved installation

4️⃣ Offentlig HTTPS oprettet:

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

📌 Fordele:

  • automatiske SSL-certifikater
  • WebSocket-understøttelse
  • kun intern routing (sikker rute)
  • Opsætning af nginx ikke nødvendig
  • Ingen lokale reverse proxies påkrævet

Hver skabelon indeholder en forkonfigureret, sikker Webproxy og tilknyttet endpoint. For at sikkert eksponere brugerdefinerede applikationer deployet på din GPU-server, skal du benytte dig af Webproxy-skabelonen:Web Proxy med SSL


⚠️ Brug af port 80 / 443

Direkte binding til porte 80 or 443 eksponeres ikke automatisk til det offentlige internet. Brug Webproxy-skabelonen til at oprette HTTPS-slutpunkter. Installation af brugerdefinerede SSL-certifikater understøttes ikke; vi anbefaler at bruge port 8080 til din applikation, hvilket er et almindeligt foretrukket valg blandt udviklere.

Web Proxy med SSL


⏱️ Proxy Timeout Klasser

Det automatiske routinglag for HTTPS/Webproxy justerer adfærden baseret på trafiktypen. Dette sikrer, at korte interaktive kald forbliver hurtige, mens AI/streaming-opgaver forbliver stabile.

Trafiktype Detektionsmetode Timeout
Almindelig HTTP standard forespørgsel/svar 60s
Chat / Streaming (SSE/NDJSON) /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / NDJSON-headere 10 minutter
Store downloads fil-lignende type Range headers, vedhæftninger, binær overførsel 30 minutter
WebSockets WS/WSS opgraderingsdetektion ingen ledighedstid

💡 Proxyen justeres dynamisk, hvis responsbetingelserne ændres. Eksempel: Servering af en fil = automatisk opgradering til download-timeout.

📝 Applikationskrav

For SSE/NDJSON-streaming

Send korrekt indholdstype:

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

Inkluder heartbeat output hvert 15–30 sekund.

For WebSockets

Hold ping/pong aktiv (typisk 20-30 sekunder).

Til downloads

Support Range anmodninger og status 206. Add Content-Disposition: attachment når det er nødvendigt


🧪 Test af streamingtilstande

Eksempel på SSE curl:

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

Eksempel NDJSON:

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

Eksempel på genoptagelig download:

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

🧪 Portnåelighedstests

Intern:

bash
ss -tlnp | grep :11307

Udefra:

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

Rå porte kræver kun:

  • kørende app
  • binding 0.0.0.0
  • korrekt portbrug

🔁 Offentlige porte & skabeloner

Offentlige porte tildeles automatisk og vises i dashboardet ved siden af skabeloninstallationer.

Til egne projekter, brug:

Kode
8080→ Webproxy → HTTPS endpoint

🧯 Fejlfinding

Almindelige problemer, der opstår ved etablering af en fuldt funktionel HTTPS-forbindelse, skyldes ofte simple konfigurationsdetaljer.

❌ Ikke tilgængelig: tjek port og binding
❌ Forkert port: brug kun tildelte porte
❌ Ingen HTTPS: brug Webproxy-skabelonen
❌ Firewall inde i container: deaktiver eller juster
❌ UDP ikke aktiveret: TCP er vores standard, aktiver UDP via administrationsdashboardet, hvis du virkelig har brug for UDP
❌ Lange beregningsopgaver: stream output eller brug SSE/NDJSON mode
❌ Forsøg på at tilslutte eget domæne: Vi understøtter ikke egne domæner.


🧑‍💻 Eksempel: FastAPI med Webproxy

Intern app:

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

Offentlig HTTPS:

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

Web Proxy med SSL


📎 Nyttige links