Aller au contenu
accueil / plateforme / control-plane
Hoody Platform

La couche de cycle de vie. Une API.

api.hoody.com est là où les conteneurs prennent existence. Créer, mettre en pause, capturer, copier entre serveurs, isoler par realm, facturer — tout en HTTP.

100+ endpoints. Specs OpenAPI par service. Tokens scopés par realm. Pause, snapshot, copie, sync — tout sur la même surface.

Tokens hdy_OpenAPI par serviceIsolation par realmPortefeuille unidirectionnel
POST /api/v1/projects/ID/containers

# 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…", …] }

accueil / plateforme / control-plane / lifecycle
Cycle de vie du conteneur

Six états. Transitions explicites.

Les conteneurs progressent dans une machine à états définie. Chaque transition a un endpoint, et chaque transition est un événement enregistré dans l'historique du conteneur.

creating

Provisionnement du système de fichiers et des ressources

running

En ligne et servant ses URLs

stopped

Éteint · stockage facturé

paused

RAM gelée · reprise instantanée

failed

Erreur lors d'une opération

copying

Duplication asynchrone en cours

Endpoints de transition

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

accueil / plateforme / control-plane / time-travel
Pause · snapshot · restauration

Mettez en pause le travail en cours. Capturez des machines entières.

Gelez la RAM avec pause/resume. Capturez le système de fichiers, les processus et la mémoire avec des snapshots avec état. Restaurez un conteneur à un moment antérieur sans réinitialiser quoi que ce soit.

Mise en veille du conteneur, pas arrêt

  • État RAM gelé en place ; fichiers ouverts et pools de connexion DB conservés
  • Mettez en pause un LLM en milieu d'inférence — reprenez sans re-chauffer le contexte
  • Mettez en pause un job d'automatisation la nuit — reprenez le matin
  • POST /containers/ID/pause · POST /containers/ID/resume

Git pour les machines

  • Créer en cours d'exécution = avec état (système de fichiers + processus + mémoire)
  • Créer à l'arrêt = sans état (système de fichiers seulement)
  • Alias de snapshot jusqu'à 100 caractères, expiration auto optionnelle en jours
  • POST /containers/ID/snapshots · PATCH /containers/ID/snapshots/NAME pour restaurer
accueil / plateforme / control-plane / copy-sync
Copie · sync

Branchez un conteneur. Gardez-le synchronisé.

Copiez l'état complet d'un conteneur — historique des snapshots inclus — vers un autre serveur ou région. Sync propage les changements incrémentiels de la source vers la copie.

Conteneur source

container-67e89abc…

server: node-us-east-1

POST /containers/ID/copy
Conteneur cible

container-abc1234d…

server: node-eu-west-1

POST /containers/ID/sync (unidirectionnel, incrémentiel)

target_project_id pour la copie inter-projet

source_snapshot pour copier un état spécifique

Durée typique : 3 à 5 min même serveur (50 Go), 10 à 15 min inter-serveur (50 Go)

Sync écrase les modifications locales sur la copie. Elle n'est pas bidirectionnelle — les changements de la source s'écoulent vers la copie, jamais en sens inverse.

accueil / plateforme / control-plane / governance
Isolation · facturation

L'isolation et la facturation sont des primitives API

Les realms scopent l'hôte API lui-même. La séparation du portefeuille empêche une compromission de vider votre budget d'infrastructure.

Multi-tenancy au niveau API

https://REALM_A.api.hoody.com
https://REALM_B.api.hoody.com
  • Les agents IA dans le realm A ne peuvent littéralement pas voir les ressources du realm B
  • Les tokens sont scopés à des realms spécifiques via realm_ids
  • L'isolation par realm se situe au-dessus du RBAC de projet — elle change l'hôte API

Soldes général et IA

Solde général
Finance l'hébergement infra
transfert + frais
Solde IA
Finance l'usage LLM
  • Une charge de travail IA compromise ne peut pas vider le budget infra
  • Stripe (conforme PCI), 100+ cryptos (NOWPayments), virement bancaire
  • Factures PDF auto-générées · historique de transactions paginé
accueil / plateforme / control-plane / endpoints
Surface API complète

La surface API complète

Groupé par ressource. Chaque endpoint a une spec OpenAPI.

Auth & Tokens

25+ endpoints

OAuth, inscription, connexion/refresh/déconnexion JWT, 2FA avec codes de secours, tokens hdy_ longue durée avec whitelist IP CIDR et scoping par realm

Conteneurs & Cycle de vie

20+ endpoints

CRUD, stats, start/stop/pause/resume/restart, règles de firewall, démarrage/arrêt réseau

Snapshots, copie & sync

10+ endpoints

CRUD snapshot avec alias et expiration, copie asynchrone inter-serveur, sync incrémentielle unidirectionnelle

Portefeuille & Facturation

20+ endpoints

Soldes, transactions, méthodes de paiement (Stripe + crypto + banque), paiements, factures avec PDF, transferts général→IA

Realms & Projets

5+ endpoints

Liste des realms avec stats d'usage optionnelles, CRUD de projet, liste de conteneurs scopée par projet

Alias proxy · permissions · logs

31 endpoints

Servi par le Control Plane mais documenté sur /platform/proxy — alias (6), permissions (17), logs (8)

Chaque service publie sa propre spec OpenAPI (p. ex. Hoody SQLite, Hoody Terminal, Hoody Cron) — générez des clients typés dans n'importe quel langage.

accueil / plateforme / control-plane / vs
Control Plane vs orchestration traditionnelle

Ce que l'orchestration traditionnelle vous demande d'assembler

Terraform, kubectl, le SDK AWS et les APIs Docker daemon couvrent chacun une partie de ce que le Control Plane couvre sur une seule surface. Voici une répartition honnête.

CapacitéControl PlaneStack traditionnelle
CRUD de conteneurPOST /projects/ID/containersFournisseur Terraform + module + apply
Mise en pause de l'état RAMPOST /containers/ID/pause · /resumePas d'analogue direct (suspension VMware)
Snapshot en cours d'exécution + RAMPOST /containers/ID/snapshotsScripts personnalisés + snapshots VM
Copie inter-serveurPOST /containers/ID/copy + /syncrsync + bootstrap manuel + re-enregistrement
Isolation API multi-tenantrealm_ids[] · REALM.api.hoody.comCouches RBAC + discipline de namespace
Facturation unifiée + crédits LLMgeneral → AI transfer (one-way)Stripe + facture fournisseur LLM séparée
Réponses API signéesX-Hoody-Signature (ED25519)TLS seulement (contenu non signé)
Client typé depuis la specGET /api/v1/openapi.jsonÉcrire votre propre SDK

Quand vous avez besoin du modèle plan/apply de Terraform, de la planification de kubectl, ou des services gérés d'AWS, utilisez-les. Le Control Plane trouve sa place quand les conteneurs sont la primitive et que vous voulez tout le cycle de vie — y compris pause et snapshot — dans une seule API.

accueil / plateforme / control-plane / start
Démarrer

Votre premier conteneur nécessite un seul POST.

Obtenez un token API, choisissez une image, et votre conteneur a chaque URL de service Kit avant que le HTTP 201 n'arrive.

Référence API

Voir aussi — /platform/proxy pour comment ces URLs routent et s'authentifient.