Denne FAQ forklarer, hvordan du gør dine webapplikationer (f.eks. Gradio, FastAPI, Streamlit, Flask) offentligt tilgængelige på Trooper.AI GPU-servere via HTTP(S). Dette er især nyttigt for dashboards, API'er og brugergrænseflader, der kører inde i din Blib eller skabelon.
Vi anbefaler at bruge den inkluderede SSL-proxy i alle skabeloner for nemt at sikre dine apps. Læs mere nedenfor!
Hver server på Trooper.AI leveres med minimum 10 offentlige porte pr. GPUDet betyder:
Alle offentlige porte er sikret af vores SSL-proxy. De fleste brugere behøver kun 2–4 porte (f.eks. en til deres app, en til overvågning, en til WebSocket/API-adgang).
Du kan tjekke dine tilgængelige porte i dashboardet eller anmode om en fuld liste fra support.
På dette skærmbillede: Fra top til bund og fra venstre til højre kan du se:
0.0.0.0, ikke 127.0.0.1 og en af dine tildelte offentlige porte som 11307Eksempel (Python/Flask):
flask run --host=0.0.0.0 --port=11307
Eksempel (Gradio):
app.launch(server_name="0.0.0.0", server_port=11307)
Eksempel (start en Gradio-app fra shell):
python your_app.py --server-name 0.0.0.0 --server-port 11307
Eksempel (Docker):
docker run -p 11307:8080 your-ai-webapp-image
11307Din app vil være tilgængelig på:
http://connectXX.trooper.ai:11307
No. Direkte adgang til port 80 (HTTP) og 443 (HTTPS) er ikke tilgængelig af sikkerhedsmæssige årsager.
Hvis du har brug for et sikkert HTTPS-endepunkt (f.eks. til frontend-indlejring eller OAuth-omdirigering):
👉 Du får automatisk SSL til enhver skabelon eller kontakt support for at få hjælp
Dette vil mappe din offentlige port (f.eks. 11307til en sikker HTTPS-slutpunkt som:
https://ssl-access-id.app.trooper.ai/
Denne SSL-proxy er inkluderet i alle GPU-planer og aktiveres automatisk ved hver skabeloninstallation. Data dirigeres sikkert på vores interne netværk, hvilket giver øget sikkerhed og sikrer, at certifikater er specifikke for dit GPU Server Blib's netværksmiljø.
Du har fire hovedmuligheder:
Brug vores administrerede HTTPS-proxy (anbefales, se næste kapitel) Automatisk implementeret ved skabeloninstallation. Trafik dirigeres fuldt ud i det interne netværk direkte til din GPU Server Blib!
Kør din egen reverse proxy (f.eks. nginx med Let's Encrypt) på din offentlige frontend (web)server
Bemærk: Du vil stadig bruge en ikke-standard port som 11306 på GPU-serveren. Sørg for at understøtte WebSockets, hvis det er nødvendigt.
Brug en tunneleringstjeneste som SSH-tunnel, ngrok eller Cloudflare Tunnel Dette giver dig et offentligt HTTPS-domæne hurtigt, men gør det vanskeligt at vedligeholde. Brug kun under hurtig udvikling.
Kommuniker via API (industristandard) Kommuniker kun via API fra din offentlige server med din GPU-server. Dette kan kombineres med (1) en HTTPS-proxy eller (3) en SSH-tunnel. Dette er industristandarden og anvendes af produktive tjenester.
Vores SSL-proxy serverer altid HTTPS on https://<ssl-id>.app.trooper.ai og videresender trafik over vores interne netværk til din apps port. auto-detekterer hvad du laver (almindelig HTTP, streaming/chat, store downloads, WebSockets) og anvender en smart timeout, så lange jobs ikke afbrydes – men inaktive/brudte forbindelser hænger ikke fast for evigt.
| Trafiktype | Hvordan det opdages | Proxy timeout |
|---|---|---|
| Almindelig HTTP-anmodning/svar | Alt der ikke matcher nedenfor | 60s (STANDARD) |
| Chat/Streaming (SSE / NDJSON) | Stien indeholder /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / application/x-ndjson |
10 min (LANG) |
| Store filneddownloadninger | Range header, fil-lignende sti/udvidelse Accept: application/octet-stream |
30 min (DOWNLOAD) |
| WebSockets | HTTP-opgradering til WS/WSS | Ingen proxy inaktivitetstimeout |
Proxyen opgraderer også timeouts dynamisk på svar (f.eks. hvis din server sender
206orContent-Disposition: attachment, øges den til DOWNLOAD selv hvis anmodningen ikke oprindeligt blev klassificeret som en download).
For chat/streaming (SSE/NDJSON)
Send de korrekte headere, så proxyen ved, at det er en stream:
Content-Type: text/event-streamContent-Type: application/x-ndjsonSend et heartbeat mindst hvert 15–30 sekund (SSE kan sende en kommentar linje :\n; NDJSON kan sende en tom linje). Dette holder forbindelsen varm under lange modelkørsler.
For WebSockets
For store downloads
206 Partial Content hvis relevantContent-Disposition: attachment til downloadbare filer.Content-Type (eller lad klienter anmode om med Accept: application/octet-streamså klassificerer proxyen det som en download og anvender det længere vindue.SSE stream (curl):
curl -N -H "Accept: text/event-stream" https://<ssl-id>.app.trooper.ai/api/stream
NDJSON-stream:
curl -N -H "Accept: application/x-ndjson" https://<ssl-id>.app.trooper.ai/generate
Genoptagelig download:
curl -O -H "Range: bytes=0-" https://<ssl-id>.app.trooper.ai/files/big-model.bin
Content-Disposition: attachment og en korrekt Content-Typeeller få klienten til at sende Accept: application/octet-streamDette sikrer 30 min downloadvindue.Fra din server:
ss -tlnp | grep :11307
Du bør se:
LISTEN 0 128 0.0.0.0:11307 ...
Fra din lokale maskine:
curl http://connectXX.trooper.ai:11307
Hvis porten hænger eller timeout opstår:
0.0.0.0socatHvis din app kun kører på localhost:8000, du kan videresende det:
sudo socat TCP-LISTEN:11307,fork TCP:localhost:8000
Dette eksponerer localhost:8000 eksternt som connectXX.trooper.ai:11307.
Offentlige portområder tildeles automatisk og kan ikke ændres.
Hvis din applikation kræver flere porte end standardallokeringen (f.eks. til parallelle applikationer eller multi-tenant deployments), bedes du kontakte vores supportteam, efter at have gennemgået vores dokumentation grundigt. Det er vigtigt at forstå, at GPU-servere ikke er beregnet til at fungere som offentlige webservere, og vi tilbyder ikke mulighed for at åbne yderligere offentlige porte.
0.0.0.0import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=11308)
Få adgang til det på:
http://connectXX.trooper.ai:11308
Har du brug for HTTPS? Du bør automatisk se hængelåseikonet på dine skabeloninstallationer, der peger på:
https://ssl-token.apps.trooper.ai/
Vi er her for at hjælpe. Forbered venligst disse oplysninger, før du kontakter os:
aiXX_trooperai_000XXX)