Ta sekcja FAQ wyjaśnia, jak udostępnić publicznie swoje aplikacje internetowe (np. Gradio, FastAPI, Streamlit, Flask) na serwerach GPU Trooper.AI za pomocą HTTP(S). Jest to szczególnie przydatne dla pulpitów nawigacyjnych, interfejsów API i interfejsów użytkownika działających wewnątrz Twojego Bliba lub szablonu.
Zalecamy korzystanie z dołączonego serwera proxy SSL we wszystkich szablonach, aby łatwo zabezpieczyć swoje aplikacje. Przeczytaj więcej poniżej!
Każdy serwer na Trooper.AI jest wyposażony w co najmniej 10 publicznych portów na kartę GPUOznacza to:
Wszystkie publiczne porty są zabezpieczone naszym proxy SSL. Większości użytkowników wystarcza 2–4 porty (np. jeden dla ich aplikacji, jeden do monitorowania, jeden dla WebSocket/API).
Możesz sprawdzić dostępne porty w panelu sterowania lub poprosić o pełną listę w naszym wsparciu technicznym.
Na tym zrzucie ekranu: Od góry do dołu i od lewej do prawej widzisz:
0.0.0.0, nie 127.0.0.1 i jeden z przypisanych do Ciebie publicznych portów, np. 11307Przykład (Python/Flask):
flask run --host=0.0.0.0 --port=11307
Przykład (Gradio):
app.launch(server_name="0.0.0.0", server_port=11307)
Przykład (uruchomienie aplikacji Gradio z powłoki):
python your_app.py --server-name 0.0.0.0 --server-port 11307
Przykład (Docker):
docker run -p 11307:8080 your-ai-webapp-image
11307Twoja aplikacja będzie dostępna pod adresem:
http://connectXX.trooper.ai:11307
No. Bezpośredni dostęp do portu 80 (HTTP) i 443 (HTTPS) jest niedostępny ze względów bezpieczeństwa.
Jeśli potrzebujesz bezpiecznego punktu końcowego HTTPS (np. do osadzenia w interfejsie użytkownika lub przekierowania OAuth):
👉 Otrzymasz automatycznie SSL do każdego szablonu lub skontaktuj się z naszym wsparciem, aby uzyskać pomoc.
To przypisze Twój publiczny port (np. 11307do bezpiecznego punktu końcowego HTTPS, takiego jak:
https://ssl-access-id.app.trooper.ai/
Ten serwer proxy SSL jest zawarty we wszystkich planach GPU i jest automatycznie aktywowany przy każdej instalacji szablonu. Dane są bezpiecznie przesyłane w naszej sieci wewnętrznej, zapewniając zwiększone bezpieczeństwo i gwarantując, że certyfikaty są specyficzne dla środowiska sieciowego Twojego GPU Server Blib.
Masz cztery główne opcje:
Skorzystaj z naszego zarządzanego serwera proxy HTTPS (zalecane, patrz następny rozdział) Automatycznie wdrażane po zainstalowaniu szablonu. Ruch sieciowy w pełni kierowany w wewnętrznej sieci bezpośrednio do Twojego GPU Server Blib!
Uruchom własny serwer proxy wsteczny (np. nginx z Let’s Encrypt) na swoim publicznym serwerze frontend (web).
Uwaga: nadal będziesz używać niestandardowego portu, takiego jak 11306 na serwerze GPU. Upewnij się, że obsługuje WebSockets, jeśli to konieczne.
Użyj usługi tunelowania, takiej jak SSH tunnel, ngrok lub Cloudflare Tunnel To zapewnia szybki dostęp do publicznej domeny HTTPS, ale utrudnia utrzymanie. Używaj tylko podczas szybkiego prototypowania.
Komunikuj się poprzez API (standard branżowy) Komunikuj się wyłącznie przez API z serwera publicznego z serwerem GPU. Można to połączyć z (1) proxy HTTPS lub (3) tunelem SSH. Jest to standard branżowy i stosowany przez produkcyjne usługi.
Nasz serwer proxy SSL zawsze obsługuje HTTPS on https://<ssl-id>.app.trooper.ai i przekazuje ruch przez naszą wewnętrzną sieć do portu Twojej aplikacji. automatycznie wykrywa co robisz (zwykłe HTTP, streaming/chat, duże pobieranie, WebSockets) i stosuje inteligentny limit czasu, aby długie zadania nie zostały przerwane, ale bezczynne/uszkodzone połączenia nie wisiały w nieskończoność.
| Typ ruchu | Jak jest wykrywane | Limit czasu połączenia proxy |
|---|---|---|
| Standardowa żądanie/odpowiedź HTTP | Wszystko, czego nie udało się dopasować | 60s (DOMYŚLNIE) |
| Czat/Strumieniowanie (SSE / NDJSON) | Ścieżka zawiera /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / application/x-ndjson |
10 min (DŁUGI) |
| Pobieranie dużych plików | Range nagłówek, ścieżka/rozszerzenie pliku Accept: application/octet-stream |
30 min (POBIERANIE) |
| WebSocket | Uaktualnienie HTTP do WS/WSS | Brak limitu czasu bezczynności proxy |
Proxy również dynamicznie dostosowuje limity czasowe na podstawie odpowiedź (np. jeśli twój serwer wysyła
206orContent-Disposition: attachment, zwiększa się do POBIERANIE nawet jeśli żądanie nie zostało początkowo zaklasyfikowane jako pobieranie).
Dla czatu/strumieniowania (SSE/NDJSON)
Wyślij poprawne nagłówki, aby proxy wiedziało, że to strumień:
Content-Type: text/event-streamContent-Type: application/x-ndjsonWysyłaj sygnał pulsu co najmniej co 15–30 sekund (SSE może wysłać linię komentarza :\n; NDJSON może wysłać pustą linię). Pomaga to utrzymać połączenie podczas długotrwałych uruchomień modelu.
Dla WebSocketów
Dla dużych pobierań
206 Partial Content w odpowiednim przypadkuContent-Disposition: attachment dla plików do pobraniaContent-Type (lub pozwól klientom zażądać z Accept: application/octet-streamw celu sklasyfikowania go przez proxy jako pobieranie i zastosowania dłuższego okna.Strumień SSE (curl):
curl -N -H "Accept: text/event-stream" https://<ssl-id>.app.trooper.ai/api/stream
Strumień NDJSON:
curl -N -H "Accept: application/x-ndjson" https://<ssl-id>.app.trooper.ai/generate
Pobieranie z możliwością wznowienia:
curl -O -H "Range: bytes=0-" https://<ssl-id>.app.trooper.ai/files/big-model.bin
Content-Disposition: attachment i odpowiedni Content-Typelub mieć klienta wysyłającego Accept: application/octet-streamZapewnia to 30 min okno pobierania.Z poziomu twojego serwera:
ss -tlnp | grep :11307
Powinieneś zobaczyć:
LISTEN 0 128 0.0.0.0:11307 ...
Z Twojej lokalnej maszyny:
curl http://connectXX.trooper.ai:11307
Jeśli port się zawiesza lub przekracza limit czasu:
0.0.0.0socatIf your app only runs on localhost:8000, you can forward it:
sudo socat TCP-LISTEN:11307,fork TCP:localhost:8000
This exposes localhost:8000 externally as connectXX.trooper.ai:11307.
Public port ranges are automatically assigned and cannot be modified.
If your application requires more ports than the standard allocation (such as for parallel applications or multi-tenant deployments), please contact our support team after reviewing our documentation thoroughly. It is important to understand that GPU servers are not intended to function as public-facing web servers, and we do not offer the ability to open additional public ports.
0.0.0.0import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=11308)
Access it at:
http://connectXX.trooper.ai:11308
Need HTTPS? You should automatically see the lock icon on your template installs pointing to:
https://ssl-token.apps.trooper.ai/
We’re here to help. Please prepare these information before contacting us:
aiXX_trooperai_000XXX)