Sechzig Container auf einem Server
Eine Bare-Metal-Box betreibt Dutzende bis Hunderte Hoody-Container. KSM und BTRFS-Dedup drücken die Grenzkosten fast auf null.
Hör auf, tenant_id in jede Tabelle zu streuen. Wenn sich ein Kunde anmeldet, kopiert ein Exec-Skript einen Fresh-Customer-Container und übergibt ihnen ihre eigene URL, ihr eigenes Dateisystem, ihre eigene SQLite. Isolation ist das Betriebssystem zwischen ihnen, nicht eine WHERE-Klausel.
Wenn ein User sich registriert, passiert genau das.
Jeder POST auf /api/v1/projects/{id}/containers startet eine isolierte Umgebung. Ein Call, ein Tenant, eine URL zurück an deine App.
Dein Stripe-Webhook (oder ein beliebiger Billing-Webhook) trifft auf ein Hoody Exec Script. Kein Express, keine Server-Config — nur eine Datei in scripts/.
Der neue Container hat sein eigenes Dateisystem, sein eigenes SQLite, seine eigene Ramdisk. Tenant A kann die Daten von Tenant B schlicht nicht sehen.
Die Antwort enthält eine Container-URL. Deine App leitet den User in seine eigene Sandbox — im selben Deploy-Fenster.
Netzwerk- und Firewall-Regeln des Containers werden aus deinem Template kopiert. Jeder neue Tenant startet von derselben Security-Baseline.
Stopp den Container und er kostet nichts. BTRFS speichert nur das Delta zu deinem Template — Speicher bleibt günstig, selbst im großen Maßstab.
Ein DELETE-Call entfernt den Container und alle zugehörigen Daten. DSGVO-Offboarding ist kein Script, sondern ein einziger HTTP-Call.
Der ganze Flow ist ein Webhook-Handler. Kein Kubernetes-Operator, kein Namespace-YAML, kein Cluster-Admin. Drei HTTP-Calls: Webhook rein, Container raus, URL zum User.
Die traditionellen Optionen waren entweder eine Spalte auf jeder Tabelle oder eine Flotte aus VMs, die du dir nicht leisten konntest. Hoody ist eine dritte Form: Container, billig genug, um jedem Kunden einen zu geben.
Multi-Tenancy ist kein Architekturproblem mehr. Es wird zu einem `cp`-Befehl.
POST /containers/$TEMPLATE/copyDELETE /containers/$CIDPATCH /containers/$CID [ env_vars ]Per-Tenant-Isolation hat historisch entweder eine clevere WHERE-Klausel oder ein teures Cluster bedeutet. Container pro Kunde verdrängt die üblichen Workarounds:
Idle Customers kosten nichts. Aktive skalieren on demand. Das Ganze läuft auf $49 Bare Metal, bis du Hunderte zahlende User hast.