Ir al contenido
inicio / platform / proxy
Hoody Platform

Cada servicio es una URL. El proxy es cómo.

Un contenedor expone cada servicio de Hoody Kit en su propia URL HTTPS, más un slug http-PUERTO para cualquier cosa que vincules tú mismo. Puertos, auth, TLS e IPs reales de clientes se resuelven en la capa de URL.

El proxy corre en tu bare metal. Hoody ve las llamadas a la API de gestión: el tráfico del contenedor nunca sale de tu servidor.

Espacio de claves 2^192overhead sub-1msIP real en socket
https://PROJECT_ID-CONTAINER_ID-service-N.SERVER.containers.hoody.com
projectId
Identificador de proyecto de 24 hex
containerId
Identificador de contenedor de 24 hex
service
Slug de servicio Kit (terminal, display, files…)
instance
1, 2, 3… para servicios que admiten varios
serverName
Tu servidor bare metal

*.containers.hoody.com — wildcard TLS · no Certificate Transparency log exposure

inicio / platform / proxy / grammar
Gramática de URL

Una gramática, muchos patrones

Todos los servicios Kit se resuelven a través del mismo proxy, pero el slug de URL revela qué es. Misma gramática, diferente forma por servicio.

Patrón
https://PROJECT_ID-CONTAINER_ID-slug.SERVER.containers.hoody.com
ServicioSlug de URLNotas
Workspacesworkspace-NCapa de composición sobre otras URLs de servicio
Terminalterminal-NShell por instancia; mapea a display-N
Displaydisplay-NEscritorio GUI / X11 por instancia
Browserbrowser-NInstancia de Chrome remota
Codecode-NInstancia de VS Code por índice
FilesfilesSingleton: sin índice de instancia
SQLitesqlite-NUn slug por servicio de base de datos
Execexec-NScripts como APIs
Agentagent-NInstancia LLM por agente
cURLcurl-NProxy HTTP de salida
Daemonhoody-daemon-NGestor de procesos
Cron— (vía cURL hoy)Servicio placeholder; la programación vive en cURL
Notificationsn-N · notification-server-NPuente de navegador + API
Pipe— (vía otros servicios)Servicio placeholder; streaming distribuido entre Files/Terminal/Exec

Proyecto 24 hex × contenedor 24 hex = 2^192 combinaciones de pares. Imposible de fuerza bruta.

inicio / platform / proxy / ports
Puertos → URLs

Ejecuta un servidor en cualquier puerto. Obtendrá una URL.

Los prefijos http-PUERTO enrutan el proxy al puerto interno de tu contenedor. Sin bloque server de nginx. Sin YAML de ingress.

Dentro del contenedor

# listening sockets

$ ss -ltnp

 

LISTEN0.0.0.0:4000node server.js(react-dev)
LISTEN0.0.0.0:5173vite(admin-ui)
LISTEN0.0.0.0:7070python api.py(payments)
URL pública

https://PROJECT_ID-CONTAINER_ID-http-4000.SERVER.containers.hoody.com

https://PROJECT_ID-CONTAINER_ID-http-5173.SERVER.containers.hoody.com

https://PROJECT_ID-CONTAINER_ID-http-7070.SERVER.containers.hoody.com

Los puertos de Hoody-kit están reservados para los servicios propios de la plataforma; todo lo demás es tuyo. Del lado de la app, vincula en cualquier puerto y expónlo vía http-PUERTO.

Las apps deben vincularse a 0.0.0.0, no a localhost: el socket debe ser accesible desde el contenedor del proxy.

Hace proxy de HTTP/1.1, HTTP/2, HTTP/3 y WebSocket de extremo a extremo. El UDP de usuario arbitrario no se enruta: usa una IPv4 dedicada si necesitas UDP raw.

inicio / platform / proxy / auth
Auth en la puerta

La auth es una política JSON, no middleware de aplicación.

El proxy valida claims JWT, hashes de contraseña, rangos CIDR de IP y bearer tokens antes de que una solicitud llegue a tu contenedor. Tu app se mantiene limpia.

PATCH /api/v1/containers/ID/proxy-permissions
{
  "enable_proxy": true,
  "default": "deny",
  "groups": {
    "dashboard": {
      "type": "jwt",
      "algorithm": "HS256",
      "source": "header",
      "key": "Authorization",
      "secret": "<hmac-secret>",
      "claims": { "role": ["admin", "viewer"] }
    },
    "office-only": {
      "type": "ip",
      "cidrs": ["203.0.113.0/24"]
    }
  },
  "permissions": {
    "dashboard": { "http": [4000, 5173] },
    "office-only": { "ssh": true, "terminal": true }
  }
}
clienteproxy (verificación de política)contenedor (HTTP limpio)

JWT

HS256 · RS256 · ES256 · cabecera / cookie / query · validación de claims

Contraseña

HTTP Basic · SHA-256 + sal · embebible en URL

IP

Coincidencia IPv4 CIDR · IP real del cliente a nivel de socket

Bearer Token

Múltiples tokens por grupo · apto para APIs

Los permisos a nivel de contenedor reemplazan los permisos a nivel de proyecto: no se fusionan. Establece explícitamente ambos ámbitos si dependes de la herencia.

inicio / platform / proxy / aliases
Alias y dominios

URLs memorables sobre URLs criptográficas

Una llamada a la API convierte la URL criptográfica en api.mycompany.com. Let's Encrypt aprovisiona en 30-60 segundos y se renueva cada 90 días.

Generada al crear el contenedor

https://67e89abc…-890abcdef…-http-4000.node-us.containers.hoody.com

POST /api/v1/proxy-aliases
CNAME a tu servidor · Let's Encrypt automático

https://api.mycompany.com

Enrutamiento por ruta
target_path + allow_path_override
expires_at
Acceso por tiempo limitado
Alias multi-servicio
Un alias → muchos programas
Dominio personalizado
CNAME · Let's Encrypt automático

Nombres de alias: 3-61 caracteres, alfanumérico en minúsculas más guiones, debe comenzar y terminar con letra o número. Los alias autogenerados tienen 48 caracteres hexadecimales.

inicio / platform / proxy / vs
Autoalojado vs Hoody Proxy

Lo que de otro modo tendrías que montar tú mismo

El proxy reemplaza un stack que la mayoría de equipos ensambla desde cero: reverse proxy + cert manager + VPN o túnel + auth por app + log de auditoría. Los axiomas en los que falla la columna autoalojada —URL-como-ruta, URL-como-ámbito-de-auth, URL-como-embebible— son lo que el proxy proporciona de forma nativa.

PreocupaciónHoody ProxyEquivalente autoalojado
HTTPS wildcardcompatible de forma nativaNativocertbot + cron de renovación + rotación de cert
Enrutamiento a puerto internocompatible de forma nativaNativoBloque server de nginx por servicio
IP real del clientecompatible de forma nativaNativoParsear X-Forwarded-For por app
Auth JWT · Basic · IP · Tokencompatible de forma nativaNativoMiddleware por app + libs de sesión
Dominio personalizado + TLScompatible de forma nativaNativoCloudflare / DNS-01 / recarga nginx
Auditoría centralizada de solicitudescompatible de forma nativaNativoLogs de nginx + log shipper + índice
URLs embebibles en iframecompatible de forma nativaNativoCORS / CSP / TLS manual por app
Corre en tu hardwarecompatible de forma nativaNativoTú lo ejecutas de todas formas

Si ya estás en Kubernetes con un controlador de ingress, Cloudflare Tunnels para SSO con Okta, o Tailscale para acceso privado L3, esas herramientas siguen siendo mejores en sus nichos específicos. El proxy gana su lugar cuando quieres servicios de contenedor con dirección URL como abstracción principal.

inicio / platform / proxy / build
Lo que esto desbloquea

Seis flujos de trabajo que el modelo URL-first hace triviales

Extraído de patrones que los equipos realmente usan con Hoody Proxy.

Lanza una API sin reverse proxy

Vincula a 0.0.0.0:4000. Obtén http-4000.SERVER.containers.hoody.com. Sáltate el nginx, el cert y el DNS.

Dominio personalizado con TLS automático

POST /api/v1/proxy-aliases, establece un CNAME y la primera solicitud aprovisiona Let's Encrypt en 30-60 segundos.

Blue/green mediante intercambio de alias

Apunta api.company.com al contenedor B, prueba y cambia el alias de vuelta. Sin recarga de configuración, sin tiempo de inactividad.

Dale a un agente de IA un contenedor para controlar

El agente obtiene un JWT, el proxy valida por solicitud, el agente escribe archivos, ejecuta comandos y consulta sqlite vía HTTPS.

Subdominios SaaS multi-tenant

Un contenedor por tenant; alias TENANT.yourapp.com. Aislamiento de tenant aplicado en la capa de URL.

Revocación instantánea

Una llamada DELETE al Control Plane y la URL muere en menos de un segundo. Sin envenenamiento de caché.

inicio / platform / proxy / start
Empezar

Tu primera URL está a una llamada API de distancia.

Crea un proyecto, crea un contenedor y cada servicio ya está en línea. Sin infraestructura que levantar primero.

Guía de Proxy

Ver también — /platform/control-plane para las APIs de alias de proxy, permisos y logs.