Zum Inhalt springen
Home / Plattform / Proxy
Hoody Plattform

Jeder Service ist eine URL. Der Proxy ist das Wie.

Ein Container stellt jeden Hoody-Kit-Service unter seiner eigenen HTTPS-URL bereit, plus einen http-PORT-Slug für alles, was du selbst bindest. Ports, Auth, TLS und echte Client-IPs werden alle auf der URL-Ebene aufgelöst.

Der Proxy läuft auf deinem Bare Metal. Hoody sieht Management-API-Aufrufe – Container-Traffic verlässt deinen Server nie.

2^192 KeyspaceUnter 1ms OverheadEchte IP am Socket
https://PROJECT_ID-CONTAINER_ID-service-N.SERVER.containers.hoody.com
projectId
24-Hex-Projekt-Kennung
containerId
24-Hex-Container-Kennung
Dienst
Kit-Service-Slug (terminal, display, files…)
instance
1, 2, 3… für Services, die mehrere unterstützen
serverName
Dein Bare-Metal-Server

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

Home / Plattform / Proxy / grammar
URL-Grammatik

Eine Grammatik, viele Muster

Jeder Kit-Service wird über denselben Proxy aufgelöst, aber der URL-Slug verrät, was es ist. Dieselbe Grammatik, unterschiedliche Form pro Service.

Muster
https://PROJECT_ID-CONTAINER_ID-slug.SERVER.containers.hoody.com
ServiceURL-SlugHinweise
Workspacesworkspace-NKompositions-Schicht über anderen Service-URLs
Terminalterminal-NPro-Instanz-Shell; wird auf display-N gemappt
Displaydisplay-NGUI / X11-Desktop pro Instanz
Browserbrowser-NHeadless Chromium
Codeui · http-PORTOrchestrator bei ui; VS Code-Instanzen über Ports
DateienfilesSingleton – kein Instanz-Index
SQLitesqlite-NEin Slug pro Datenbank-Service
Execexec-NJede Datei im Exec-Verzeichnis wird eine URL
Agentagent-NAI-Agent mit WebSocket-Streaming
cURLcurl-NAusgehender HTTP-Proxy
Daemonhoody-daemon-NProzess-Supervisor
Cron— (heute per cURL)Geplante Cron-Jobs
Benachrichtigungenn-N · notification-server-NDesktop-Benachrichtigungen
Pipe— (über andere Services)Streaming-Pipes ohne Speicherung

Projekt 24-Hex × Container 24-Hex = 2^192 Paarkombinationen. Nicht per Brute-Force durchführbar.

Home / Plattform / Proxy / ports
Ports → URLs

Einen Server auf einem beliebigen Port ausführen. Er bekommt eine URL.

http-PORT-Prefixe routen den Proxy zum internen Port deines Containers. Kein nginx Server-Block. Kein Ingress-YAML.

Innerhalb des Containers

# 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)
Öffentliche URL

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

Hoody-Kit-Ports sind für die eigenen Services der Plattform reserviert; alles andere gehört dir. Binde App-seitig jeden Port und expose ihn über http-PORT.

Apps müssen an 0.0.0.0 binden, nicht localhost – der Socket muss vom Proxy-Container erreichbar sein.

Proxied HTTP/1.1, HTTP/2, HTTP/3 und WebSocket durchgehend. Beliebiges Benutzer-UDP wird nicht geroutet – eine dedizierte IPv4 nutzen, wenn UDP benötigt wird.

Home / Plattform / Proxy / auth
Auth am Eingang

Auth ist eine JSON-Policy, keine Anwendungs-Middleware.

Der Proxy validiert JWT-Claims, Passwort-Hashes, IP-CIDR-Bereiche und Bearer-Tokens, bevor eine Anfrage deinen Container erreicht.

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 }
  }
}
clientProxy (Policy-Prüfung)Container (normales HTTP)

JWT

HS256 · RS256 · ES256 · Header / Cookie / Query · Claim-Validierung

Passwort

HTTP Basic · SHA-256 + Salt · URL-einbettbar

IP

IPv4 CIDR-Match · Echte Client-IP auf Socket-Ebene

Bearer-Token

Mehrere Tokens pro Gruppe · API-freundlich

Container-Berechtigungen ersetzen Projekt-Berechtigungen – sie werden nicht zusammengeführt. Beide Bereiche explizit setzen, wenn beide benötigt werden.

Home / Plattform / Proxy / aliases
Aliases & Domains

Einprägsame URLs statt kryptografischer URLs

Ein API-Aufruf wandelt die Crypto-URL in api.meinesfirma.com um. Let's Encrypt stellt in 30–60 Sekunden aus und erneuert alle 90 Tage.

Beim Container-Erstellen generiert

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

POST /api/v1/proxy-aliases
CNAME auf deinen Server · Let's Encrypt auto

https://api.mycompany.com

Pfad-Routing
target_path + allow_path_override
expires_at
Zeitlich begrenzter Zugriff
Multi-Service-Alias
Ein Alias → viele Programme
Eigene Domain
CNAME · Let's Encrypt auto

Alias-Benennung: 3–61 Zeichen, kleingeschriebene alphanumerische Zeichen plus Bindestriche, muss mit einem Buchstaben oder einer Zahl beginnen und enden.

Home / Plattform / Proxy / Vergleich
Self-Hosted vs. Hoody Proxy

Was du sonst zusammenflicken würdest

Der Proxy ersetzt einen Stack, den die meisten Teams von Grund auf zusammenbauen: Reverse Proxy + Zert-Manager + VPN oder Tunnel + Pro-App-Auth.

ConcernHoody ProxySelf-hosted Äquivalent
Wildcard-HTTPSnativ unterstütztNativecertbot + Erneuerungs-Cron + Zert-Rotation
Routing zum internen Portnativ unterstütztNativenginx Server-Block pro Service
Echte Client-IPnativ unterstütztNativeX-Forwarded-For pro App parsen
JWT · Basic · IP · Token Authnativ unterstütztNativeMiddleware pro App + Session-Bibliotheken
Eigene Domain + TLSnativ unterstütztNativeCloudflare / DNS-01 / nginx reload
Zentralisiertes Anfrage-Auditnativ unterstütztNativenginx Logs + Log-Shipper + Index
Iframe-einbettbare URLsnativ unterstütztNativeManuelles CORS / CSP / TLS pro App
Läuft auf deiner Hardwarenativ unterstütztNativeDu betreibst es sowieso selbst

Wenn du bereits Kubernetes mit einem Ingress-Controller, Cloudflare Tunnels oder Tailscale nutzt, verwende diese weiterhin. Der Proxy richtet sich an Teams, die diese Ebene noch aufbauen oder vereinfachen wollen.

Home / Plattform / Proxy / build
Was das freischaltet

Sechs Workflows, die das URL-First-Modell trivial macht

Aus Mustern, die Teams tatsächlich mit dem Hoody Proxy implementieren.

Eine API ohne Reverse Proxy ausliefern

An 0.0.0.0:4000 binden. http-4000.SERVER.containers.hoody.com erhalten. nginx, Zert und DNS-Lied überspringen.

Eigene Domain mit Auto-TLS

POST /api/v1/proxy-aliases, set a CNAME, and the first request provisions Let's Encrypt in 30–60 seconds.

Blau/Grün via Alias-Tausch

api.firma.com auf Container B zeigen, testen, Alias zurückswappen. Kein Config-Reload, keine Ausfallzeit.

Einem KI-Agenten einen Container zum Steuern geben

Agent bekommt ein JWT, Proxy validiert pro Anfrage, Agent schreibt Dateien, führt Befehle aus, fragt SQLite über HTTPS ab.

Multi-Tenant SaaS-Subdomains

Ein Container pro Mieter; Alias MIETER.deineapp.com. Mieter-Isolation auf der URL-Ebene erzwungen.

Sofortiger Widerruf

Ein DELETE-Aufruf an die Control Plane und die URL ist innerhalb einer Sekunde tot. Kein Cache-Poisoning.

Home / Plattform / Proxy / Start
Start

Deine erste URL ist einen API-Aufruf entfernt.

Ein Projekt erstellen, einen Container erstellen, und jeder Service ist bereits online. Keine Infrastruktur zuerst aufbauen.

Proxy-Anleitung

Siehe auch — /platform/control-plane für Proxy-Alias-, Berechtigungs- und Log-APIs.