Die Lebenszyklus-Schicht. Eine API.
api.hoody.com ist der Ort, wo Container entstehen. Erstellen, pausieren, Snapshot, Server-übergreifend kopieren, Realm-isolieren, abrechnen.
100+ Endpunkte. OpenAPI-Spezifikationen pro Service. Realm-begrenzte Tokens. Pausieren, Snapshot, Kopieren, Synchronisieren – alles auf derselben Oberfläche.
# create a container
$ curl -X POST https://api.hoody.com/api/v1/projects/ID/containers \
-H "Authorization: Bearer hdy_..." \
-H "Content-Type: application/json" \
-d '{"name":"dev-box","container_image":"debian/13","cpu":2,"memory":4}'
<< 201 Created
{ "id": "67e89abc…", "status": "creating", "urls": ["terminal-1…", "files…", "display-1…", …] }
Sechs Zustände. Explizite Übergänge.
Container durchlaufen eine definierte Zustandsmaschine. Jeder Übergang hat einen Endpunkt, und jeder Übergang ist ein aufgezeichnetes Ereignis in der Container-Geschichte.
Dateisystem und Ressourcen bereitstellen
Live und stellt seine URLs bereit
Ausgeschaltet · Speicher wird berechnet
RAM eingefroren · sofortiges Fortsetzen
Fehler während einer Operation
Asynchrones Duplikat in Bearbeitung
POST/containers/ID/start
POST/containers/ID/stop
POST/containers/ID/force-stop
POST/containers/ID/restart
POST/containers/ID/pause
POST/containers/ID/resume
POST/containers/ID/network/start
POST/containers/ID/network/stop
Laufende Arbeit pausieren. Ganze Maschinen snapshot'en.
RAM mit Pause/Fortsetzen einfrieren. Dateisystem, Prozesse und Speicher mit Stateful-Snapshots erfassen. Einen Container auf seinen genauen Zustand von vor einer Stunde, einem Tag oder einer Woche wiederherstellen.
Container-Schlaf, kein Shutdown
- —RAM-Zustand eingefroren; offene Dateien und DB-Verbindungs-Pools behalten
- —Ein LLM mitten in der Inferenz pausieren – ohne Kontext neu aufzuwärmen fortsetzen
- —Einen Automatisierungsjob über Nacht pausieren – morgens fortsetzen
- —POST /containers/ID/pause · POST /containers/ID/resume
Git für Computer
- —Während laufend erstellen = stateful (Dateisystem + Prozesse + Speicher)
- —Während gestoppt erstellen = stateless (nur Dateisystem)
- —Snapshot-Alias bis zu 100 Zeichen, optionaler Auto-Ablauf in Tagen
- —POST /containers/ID/snapshots · PATCH /containers/ID/snapshots/NAME to restore
Einen Container verzweigen. In Sync halten.
Den vollständigen Zustand eines Containers – Snapshot-Verlauf inklusive – auf einen anderen Server oder eine andere Region kopieren. Sync propagiert inkrementell Änderungen.
container-67e89abc…
server: node-us-east-1
container-abc1234d…
server: node-eu-west-1
target_project_id für projektübergreifendes Kopieren
source_snapshot zum Kopieren eines bestimmten Zustands
Typische Zeit: 3–5 min gleicher Server (50 GB), 10–15 min serverübergreifend (50 GB)
Sync überschreibt lokale Änderungen auf der Kopie. Es ist nicht bidirektional – Quelländerungen fließen zur Kopie, nie zurück.
Isolation und Abrechnung sind API-Primitive
Realms begrenzen den API-Host selbst. Die Wallet-Aufteilung verhindert, dass ein Angriff dein Infrastruktur-Budget aufbraucht.
API-Level-Multi-Tenancy
- —KI-Agenten in Realm A können buchstäblich keine Ressourcen von Realm B sehen
- —Tokens sind über realm_ids auf bestimmte Realms begrenzt
- —Realm-Isolation liegt über Projekt-RBAC – sie ändert den API-Host
Allgemeine und KI-Guthaben
- —Kompromittierter KI-Workload kann kein Infra-Budget leeren
- —Stripe (PCI-konform), 100+ Kryptos (NOWPayments), Banküberweisung
- —Automatisch generierte PDF-Rechnungen · paginierter Transaktionsverlauf
Die vollständige API-Oberfläche
Gruppiert nach Ressource. Jeder Endpunkt hat eine OpenAPI-Spezifikation.
Auth & Tokens
25+ Endpunkte
OAuth, Anmeldung, JWT-Login/Refresh/Logout, 2FA mit Backup-Codes, langlebige hdy_-Tokens mit CIDR-IP-Whitelist und Realm-Scoping
Container & Lebenszyklus
20+ Endpunkte
CRUD, Stats, Start/Stop/Pause/Fortsetzen/Neustart, Firewall-Regeln, Netzwerk-Start/Stop
Snapshots, Kopieren & Synchronisieren
10+ Endpunkte
Snapshot-CRUD mit Alias und Ablauf, asynchrones serverübergreifendes Kopieren, inkrementelle Einweg-Synchronisierung
Wallet & Abrechnung
20+ Endpunkte
Guthaben, Transaktionen, Zahlungsmethoden (Stripe + Krypto + Bank), Zahlungen, Rechnungen mit PDF, Allgemein→KI-Überweisungen
Realms & Projekte
5+ Endpunkte
Realm-Auflistung mit optionalen Nutzungsstatistiken, Projekt-CRUD, projektbegrenzte Container-Auflistung
Proxy Aliases · Berechtigungen · Logs
31 Endpunkte
Von der Control Plane bereitgestellt aber auf /platform/proxy dokumentiert – Aliases (6), Berechtigungen (17), Logs (8)
Jeder Service veröffentlicht seine eigene OpenAPI-Spezifikation (z.B. Hoody SQLite, Hoody Terminal, Hoody Cron) – typisierte Clients in jeder Sprache generieren.
Was traditionelle Orchestrierung dich zusammenflicken lässt
Terraform, kubectl, AWS SDK und Docker-Daemon-APIs decken jeweils einen Teil ab, den die Control Plane in einer Oberfläche abdeckt.
| Capability | Control Plane | Traditioneller Stack |
|---|---|---|
| Container-CRUD | POST /projects/ID/containers | Terraform Provider + Modul + Apply |
| RAM-Zustand pausieren | POST /containers/ID/pause · /resume | Kein direktes Analogon (VMware Suspend) |
| Laufend + RAM snapshot'en | POST /containers/ID/snapshots | Benutzerdefinierte Skripte + VM-Snapshots |
| Serverübergreifendes Kopieren | POST /containers/ID/copy + /sync | rsync + manueller Bootstrap + neu registrieren |
| Multi-Tenant API-Isolation | realm_ids[] · REALM.api.hoody.com | RBAC-Schichten + Namespace-Disziplin |
| Unified Billing + LLM-Credits | general → AI transfer (one-way) | Stripe + separate LLM-Anbieter-Rechnung |
| Signierte API-Antworten | X-Hoody-Signature (ED25519) | Nur TLS (Inhalt unsigniert) |
| Typisierter Client aus Spezifikation | GET /api/v1/openapi.json | Eigenes SDK schreiben |
Wenn du Terrafoms Plan/Apply-Modell, kubectls Scheduling oder AWS verwaltete Services benötigst, nutze diese. Die Control Plane richtet sich an Teams, die die grundlegende Container-Lifecycle-Schicht wollen.
Dein erster Container braucht einen POST.
Ein API-Token holen, ein Image wählen, und dein Container hat jede Kit-Service-URL bevor das HTTP 201 ankommt.
Siehe auch — /platform/proxy dafür, wie diese URLs routen und authentifizieren.