🌍 Dostęp HTTPS (Jak uzyskać dostęp do Twojego Bliba przez SSL)

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:

1️⃣ Bezpośrednie surowe porty publiczne

Natychmiastowe połączenie bez konfiguracji.

2️⃣ 🔐 Bezpieczny HTTPS przez Webproxy (Zalecane)

Szyfrowane udostępnianie aplikacji internetowe i API w standardzie produkcyjne. Działa domyślnie dla wszystkich szablonów i dla własnych aplikacji. Proxy WWW z SSL

3️⃣ Skonfiguruj Zaporę Ochronną dla Ograniczonego Dostępu

Ogranicz dostęp do swojego serwera GPU, określając dozwolone sieci IP lub indywidualne adresy IP, takie jak sieć firmowa lub serwer WWW. To ogranicza dostęp z zewnątrz i zwiększa bezpieczeństwo. Więcej szczegółów znajdziesz tutaj: 🛡️ Własny Firewall przed Twoim GPU Serverem


🌐 Przydział Portów Publicznych

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:

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

Przykładowy widok panelu sterowania:

Public Ports on Template Installs
Publiczne porty na zainstalowanych szablonach

W tym widoku:

  • Zakresy portów publicznych
  • Publiczne nazwy hostów
  • Nazwy szablonów
  • Ikona kłódki = dostępne bezpieczne HTTPS
  • Info = link do dokumentacji
  • Ustawienia = konfiguracja

🤖 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.


🚀 Bezpośredni Dostęp do Surowego Portu (Szybka Opcja)

Powiąż swoją aplikację z 0.0.0.0 używając dowolnego z przypisanych portów publicznych:

Przykład Flask:

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

Przykład Gradio:

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

Wynik:

Kod
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.


🔐 Bezpieczny HTTPS z Webproxy (Zalecane)

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:

Kod
0.0.0.0:8080

2️⃣ Zainstaluj szablon Webproxy

3️⃣ Skonfiguruj:

  • port wewnętrzny → port aplikacji (np. 8080)
  • zewnętrzny port Webproxy → wybrany podczas instalacji

4️⃣ Publiczny HTTPS utworzony:

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

📌 Zalety:

  • automatyczne certyfikaty SSL
  • Obsługa WebSocket
  • tylko routingu wewnętrznego (bezpieczne przekierowanie)
  • brak konieczności konfiguracji nginx
  • brak potrzeby konfigurowania lokalnych serwerów proxy

Każdy szablon zawiera wstępnie skonfigurowany, bezpieczny Webproxy i powiązany punkt końcowy. Aby bezpiecznie udostępnić niestandardowe aplikacje wdrożone na Twoim serwerze GPU, skorzystaj z szablonu Webproxy: Proxy WWW z SSL


⚠️ Użycie portów 80 / 443

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.

Czytaj więcej: Proxy WWW z SSL


⏱️ Klasy limitu czasu proxy

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 czasu bezczynności

💡 Proxy dynamicznie dostosowuje się, jeśli zmieniają się warunki odpowiedzi. Przykład: Obsługa pliku = automatyczne zwiększenie limitu czasu pobierania.

📝 Wymagania aplikacji

Dla strumieniowania SSE/NDJSON

Wyślij poprawny typ zawartości:

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

Wysyłaj sygnał pulsu co 15–30 sekund.

Dla WebSocketów

Utrzymuj aktywność ping/pong (typowe 20–30 sekund).

Dla pobierania

Wsparcie Range żądania i status 206. Add Content-Disposition: attachment w razie potrzeby


🧪 Testowanie trybów strumieniowania

Przykład zapytania cURL dla SSE:

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

Przykład NDJSON:

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

Przykład wznowialnego pobierania:

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

🧪 Testy dostępności portów

Wewnętrznie:

bash
ss -tlnp | grep :11307

Zewnętrznie:

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

Surowe porty wymagają jedynie:

  • uruchomiona aplikacja
  • powiązanie 0.0.0.0
  • prawidłowe użycie portu

🔁 Porty Publiczne & Szablony

Porty publiczne są przypisywane automatycznie i wyświetlane w panelu obok zainstalowanych szablonów.

W przypadku własnych projektów użyj:

Kod
8080→ Webproxy → HTTPS endpoint

🧯 Rozwiązywanie problemów

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.


🧑‍💻 Przykład: FastAPI z Webproxy

Aplikacja wewnętrzna:

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

Publiczny HTTPS:

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

Czytaj więcej: Proxy WWW z SSL


Przydatne linki