Ta strona wyjaśnia, jak udostępnić aplikacje na serwerach GPU Trooper.AI. Możesz publikować pulpity nawigacyjne, API, aplikacje AI, punkty końcowe modeli oraz interfejsy użytkownika działające w szablonach lub własnych projektach.
Twoje serwery Blib GPU oferują od 10 do 40 publicznych portów otwartych na internet. Wszystkie usługi powiązane z tymi portami będą dostępne z zewnątrz sieci wewnętrznej za pomocą publicznej nazwy hosta Twojego serwera.
Trooper.AI zapewnia dwie ścieżki dostępu oraz jedną warstwę zabezpieczeń sieciowych:
Natychmiastowe połączenie bez konfiguracji.
Zabezpieczony dostęp przez proxy sieciowy z użyciem SSL (polecane). Działa na wszystkich szablonach domyślnie oraz dla własnych aplikacji.
Ogranicz dostęp do swojego serwera GPU poprzez określenie zezwolonych sieci IP lub indywidualnych adresów IP, takich jak Twoja korporacyjna sieć lub serwer WWW. To ogranicza zewnętrzny dostęp i wzmacnia bezpieczeństwo. Więcej szczegółów znajdziesz tutaj: 🛡️ Rodzimy firewall przed Twoim Serwerem GPU
Każdy serwer GPU zawiera publiczne porty TCP+UDP przypisane automatycznie do szablonów i dostępne dla niestandardowych aplikacji. UDP musi zostać aktywowany za pośrednictwem panelu zarządzania, jeśli jest to rzeczywiście wymagane.
Bezpośredni adres URL:
http://connectXX.trooper.ai:PORT
Przykładowy widok panelu sterowania:
W tym widoku:
🤖 Przekierowanie portów jest zautomatyzowanym procesem z wbudowanymi kontrolami. Zleć swojemu Agentowi AI skupienie się na konfiguracji i powiązaniu portów, ponieważ przekierowanie portów działa poprawnie. Problemy z NAT są niemożliwe, jeśli status maszyny jest zielony.
Powiąż swoją aplikację z 0.0.0.0 używając dowolnego z przypisanych portów publicznych:
Przykład Flask:
flask run --host=0.0.0.0 --port=11307
Przykład Gradio:
app.launch(server_name="0.0.0.0", server_port=11307)
Wynik:
http://connectXX.trooper.ai:11307
To podejście pozostaje dostępne do szybkiego testowania i wygody wewnętrznej. Surowe porty nie są szyfrowane; dowiedz się więcej o HTTPS.
W przypadku produkcji, uwierzytelniania, interfejsów użytkownika, osadzania, monitorowania paneli kontrolnych i użytkowania API:
1️⃣ Uruchom aplikację wewnętrznie na bezpiecznym, wewnętrznym porcie:
0.0.0.0:8080
2️⃣ Zainstaluj szablon Webproxy
3️⃣ Skonfiguruj:
8080)4️⃣ Publiczny HTTPS utworzony:
https://<token>.secure.trooper.ai
📌 Zalety:
Każdy szablon zawiera wstępnie skonfigurowany, bezpieczny Webproxy wraz z powiązanym punktem końcowym. Aby bezpiecznie udostępnić niestandardowe aplikacje rozwijane na Twoim serwerze GPU, skorzystaj ze szablonu Web Proxy z SSL
Bezpośrednie przypisywanie do portów 80 or 443 nie jest automatycznie wystawiany do publicznego internetu. Wykorzystaj szablon Webproxy, aby ustanowić punkty końcowe HTTPS. Instalacja niestandardowych certyfikatów SSL nie jest obsługiwana; zalecamy użycie portu 8080 dla Twojej aplikacji, co jest powszechnie preferowanym wyborem wśród programistów.
Warstwa routingu HTTPS/Webproxy automatycznie dostosowuje zachowanie w oparciu o typ ruchu. Zapewnia to szybkie działanie krótkich, interaktywnych wywołań, a jednocześnie stabilność zadań AI/strumieniowania.
| Typ ruchu | Metoda wykrywania | Limit czasu |
|---|---|---|
| HTTP standardowy | standardowa żądanie/odpowiedź | 60s |
| Czat / Streaming (SSE/NDJSON) | /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / nagłówki NDJSON |
10 minut |
| Pobieranie dużych plików | typ pliku, Range nagłówki, załączniki, transfer binarny |
30 minut |
| WebSocket | Wykrywanie aktualizacji WS/WSS | brak limitu czasowego oczekiwania |
💡 Proxy dynamicznie dostosowuje się, jeśli zmieniają się warunki odpowiedzi. Przykład: Obsługa pliku = automatyczne zwiększenie limitu czasu pobierania.
Wyślij poprawny typ zawartości:
text/event-streamapplication/x-ndjsonWysyłaj sygnał pulsu co 15–30 sekund.
Utrzymuj aktywność ping/pong (typowe 20–30 sekund).
Wsparcie Range żądania i status 206.
Add Content-Disposition: attachment w razie potrzeby
Przykład zapytania cURL dla SSE:
curl -N -H "Accept: text/event-stream" https://<ssl-id>.secure.trooper.ai/api/stream
Przykład NDJSON:
curl -N -H "Accept: application/x-ndjson" https://<ssl-id>.secure.trooper.ai/generate
Przykład wznowialnego pobierania:
curl -O -H "Range: bytes=0-" https://<ssl-id>.secure.trooper.ai/files/model.bin
Wewnętrznie:
ss -tlnp | grep :11307
Zewnętrznie:
curl http://connectXX.trooper.ai:11307
Surowe porty wymagają jedynie:
0.0.0.0Porty publiczne są przypisywane automatycznie i wyświetlane w panelu obok zainstalowanych szablonów.
W przypadku własnych projektów użyj:
8080→ Webproxy → HTTPS endpoint
Częste problemy podczas nawiązywania w pełni funkcjonalnego połączenia HTTPS często wynikają z prostych szczegółów konfiguracji.
❌ Niedostępne: sprawdź port i powiązanie
❌ Zły port: użyj tylko przypisanych portów
❌ Brak HTTPS: użyj szablonu Webproxy
❌ Zapora ogniowa wewnątrz kontenera: wyłącz lub dostosuj
❌ UDP nieaktywowane: TCP jest naszym standardem, aktywuj UDP przez panel zarządzania, jeśli naprawdę go potrzebujesz.
❌ Długie zadania obliczeniowe: przesył strumieniowy danych wyjściowych lub użycie trybu SSE/NDJSON
❌ Próba połączenia z własną domeną: Nie obsługujemy własnych domen.
Aplikacja wewnętrzna:
uvicorn.run("main:app", host="0.0.0.0", port=8080)
Publiczny HTTPS:
https://<token>.secure.trooper.ai