🌍 Acceso HTTPS (Cómo acceder a tu Blib mediante SSL)

Esta página explica cómo hacer que las aplicaciones en servidores GPU de Trooper.AI sean accesibles públicamente. Puede publicar tableros de control, APIs, aplicaciones de IA, puntos finales de modelos y interfaces de usuario ejecutándose dentro de plantillas o sus propios proyectos.

Sus GPU Server Blibs ofrecen entre 10 y 40 puertos públicos expuestos a Internet. Cualquier servicio vinculado a estos puertos será accesible desde fuera de la red interna utilizando el nombre de dominio público de tu servidor.

Trooper.AI ofrece dos rutas de acceso más una capa de seguridad en red:

🔢 Puertos públicos directos sin procesamiento

Conectividad instantánea sin configuración.

2️⃣ 🔐 HTTPS seguro mediante Webproxy (Recomendado)

Exposición cifrada de grado producción para aplicaciones y APIs web. Activo en todas las plantillas por defecto y para sus propias aplicaciones utilice esto: Proxy Web con SSL

3️⃣ Configurar firewall para acceso restringido

Limite el acceso a tu servidor de GPU especificando redes de IPs permitidas o direcciones IP individuales, como la red corporativa o el servidor web. Esto restringe el acceso externo y mejora la seguridad. Más detalles están disponibles aquí: 🛡️ Cortafuegos de hardware personalizable Trooper.AI


🌐 Asignación de Puertos Públicos

Cada servidor de GPU incluye puertos públicos TCP+UDP asignados automáticamente a plantillas y disponibles para aplicaciones personalizadas. El protocolo UDP debe activarse desde el panel de gestión si realmente es necesario.

URL directa bruta:

Código
http://connectXX.trooper.ai:PORT

Vista de ejemplo del panel:

Public Ports on Template Installs
Puertos públicos en instalaciones de plantillas

En esta vista:

  • Rangos de puertos públicos
  • Nombres de hosts públicos
  • Nombres de plantillas
  • Icono de candado = HTTPS seguro disponible
  • Info = enlace de documentación
  • Configuración = configuración

🤖 El forwarding de puertos es un proceso automatizado con verificaciones integradas. Indique a su Agente IA que se centre en la configuración y vinculación del puerto, ya que el forwarding funciona correctamente. No hay problemas de NAT posibles si el estado de su máquina es verde.


🚀 Acceso directo al puerto sin procesar (Opción rápida)

Asigna tu aplicación al 0.0.0.0 usando cualquier puerto público asignado:

Ejemplo con Flask:

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

Ejemplo con Gradio:

pythón
app.launch(server_name="0.0.0.0", server_port=11307)

Resultado:

Código
http://connectXX.trooper.ai:11307

Este enfoque sigue disponible para pruebas rápidas y comodidad interna. Los puertos crudos no están cifrados; lea más sobre HTTPS.


🔐 HTTPS seguro con Webproxy (Recomendado)

Para producción, autenticación, interfaces de usuario, embeddings, tableros de monitoreo y uso de APIs:

Ejecutar la aplicación internamente en un puerto interno seguro:

Código
0.0.0.0:8080

2️⃣ Instalar la plantilla de Webproxy

3️⃣ Configurar:

  • puerto interno → puerto de la aplicación (ej. 8080)
  • puerto externo del Webproxy → seleccionado durante la instalación

4️⃣ HTTPS público creado:

Código
https://<token>.secure.trooper.ai

📌 Ventajas:

  • certificados SSL automáticos
  • soporte de WebSocket
  • rutas internas exclusivas (encaminamiento seguro)
  • No se requiere configuración de Nginx
  • No se requieren proxy inversos locales

Cada plantilla incluye un Webproxy seguro y preconfigurado junto con su punto de terminación asociado. Para exponer de forma segura aplicaciones personalizadas desplegadas en tu servidor GPU, utiliza la plantilla del Webproxy: Proxy Web con SSL


⚠️ Uso de los puertos 80 / 443

Vinculación directa a puertos 80 or 443 No se expone automáticamente a Internet público. Utilice la plantilla Webproxy para establecer puntos finales de HTTPS. La instalación de certificados SSL personalizados no está soportada. Conectar dominios personalizados no está permitido. Recomendamos usar el puerto 8080 para su aplicación, una opción comúnmente preferida entre desarrolladores.

Más información: Proxy web con SSL


⏳ Clases de Tiempo de Expiración del Proxy

La capa de enrutamiento HTTPS/Webproxy ajusta automáticamente su comportamiento según el tipo de tráfico. Esto garantiza que las llamadas interactivas breves permanezcan rápidas, mientras los trabajos de IA/transmisión mantienen estabilidad.

Tipo de tráfico Método de Detección Tiempo de espera
HTTP estándar petición/respuesta estándar 60s
Chat / Transmisión en tiempo real (SSE/NDJSON) /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / encabezados de NDJSON 10 minutos
Descargas grandes tipo similar a archivo, Range encabezados, adjuntos, transferencia binaria 30 minutos
WebSockets detección de actualización a WS/WSS sin tiempo de espera inactivo

💡 El proxy se ajusta dinámicamente si cambian las condiciones de respuesta. Ejemplo: Servir un archivo = actualización automática al tiempo límite de descarga.

📝 Requisitos de la aplicación

Para streaming de SSE/NDJSON

Envíe el tipo de contenido correcto:

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

Incluir salida de latido cada 15–30 segundos.

Para WebSockets

Mantener el ping/pong activo (20–30 s típico).

Para descargas

Soporte Range solicitudes y estado 206. Add Content-Disposition: attachment cuando sea necesario.


🧪 Pruebas de Modos de Flujo

Ejemplo de curl para SSE:

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

Ejemplo de NDJSON:

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

Ejemplo de descarga reanudable:

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

🧪 Pruebas de Alcance de Puertos

Interno:

bash
ss -tlnp | grep :11307

Externo:

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

Puestos sin procesar solo requieren:

  • aplicación en ejecución
  • vinculación 0.0.0.0
  • uso correcto del puerto

🔁 Puertos públicos y plantillas

Los puertos públicos se asignan automáticamente y aparecen en el panel de control junto a las instalaciones de plantillas.

Para tus propios proyectos, usa:

Código
8080→ Webproxy → HTTPS endpoint

🧯 Solución de problemas

Problemas comunes al establecer una conexión HTTPS completamente funcional suelen estar relacionados con detalles de configuración sencillos.

❌ No se puede alcanzar: verifique el puerto y la asignación
❌ Puerto incorrecto: utilice solo los puertos asignados
❌ Sin HTTPS: usa la plantilla de Webproxy
❌ Cortafuegos dentro del contenedor: desactivar o ajustar
❌ UDP no activado: TCP es nuestro predeterminado; active UDP desde el panel de gestión si realmente lo necesita
❌ Trabajos de cómputo largos: transmite la salida o usa el modo SSE/NDJSON
❌ Intento de conectar dominio propio: no admitimos dominios propios.


🧑‍💻 Ejemplo: FastAPI con Webproxy

Aplicación interna:

pythón
uvicorn.run("main:app", host="0.0.0.0", port=8080)

HTTPS público:

Código
https://<token>.secure.trooper.ai

Más información: Proxy web con SSL


📎 Enlaces útiles