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.
Snapshotte deine Developer-Baseline einmal. Ab dann bekommt jeder neue Hire eine URL. Er klickt auf irgendeinem Laptop und ist in einem frischen Container, geklont von der Baseline — Codebase, Dependencies, Env Vars, Seed-Datenbank, VS Code im Browser. Code schreiben in fünf Minuten. Kein Setup.
Willkommen an Bord! Deine Dev-Umgebung ist bereit: https://devbox-jordan.hoody.dev. Postgres geseedet, Repo geklont, einfach cd ~/work && bun dev.
Hoody Snapshots erfassen einen ganzen Container — Files auf der Disk, User-Accounts, systemd-Unit-Files, geseedete Datenbank. Container Copy klont diesen Snapshot in einen frischen Container pro Entwickler. Der Link in der E-Mail ist die Route zu diesem frischen Container.
POST .../snapshotsErstelle einen benannten Snapshot deines Referenz-Containers — alias dev-baseline. Wiederhole, wenn sich die Baseline ändert.
POST .../copy [ source_snapshot ]Ein API-Call klont den Snapshot in einen frischen Container unter dem Projekt des neuen Entwicklers.
alex-laptop.containers.hoody.comDer Container kommt direkt mit einer öffentlichen URL. Pack sie in Slack. Sie klicken. Sie sind drin.
ttyd · webview · sshhoody_kit aktiviert Terminal-, File-Browser- und VS-Code-im-Browser-Endpoints automatisch. Nichts auf dem Laptop zu installieren.
# 1. Snapshot the baseline (do this once, refresh when you upgrade Node)
curl -X POST "$API/api/v1/containers/$BASE/snapshots" \
-H "Authorization: Bearer $TOKEN" \
-d '{ "alias": "dev-baseline" }'
# 2. Copy the snapshot into a fresh container for the new hire
curl -X POST "$API/api/v1/containers/$BASE/copy" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"target_project_id": "$ACME",
"name": "alex-laptop",
"source_snapshot": "dev-baseline",
"copy_firewall_rules": true,
"copy_network_rules": true
}'
# 3. The response carries the container URL. Email it. That's onboarding.
# => https://alex-laptop.containers.hoody.comZwei POSTs und eine URL. Der Baseline-Snapshot ist der Vertrag; Container Copy ist der Konstruktor; die resultierende Subdomain landet in der Welcome-Mail. Keine Bastion zu provisionieren, kein Dotfiles-Repo zu klonen, keine Docker-Desktop-Lizenz zu verhandeln.
Die README, die früher mit jedem Repo kam, brachte ihre Failure Modes gleich mit. Die Hälfte der Zeilen waren Workarounds für den Laptop, den der neue Hire zufällig mitbrachte. Die URL ist kürzer, weil der Laptop nicht mehr Teil der Gleichung ist — die Umgebung ist es.
AN: alex@acme.com · BETREFF: WILLKOMMEN
Willkommen im Team. Öffne das hier, wenn du bereit bist, Code zu schreiben:
— infra@acme
Die README, die früher 47 Schritte hatte, ist jetzt eine Zeile: öffne diese URL.
Jedes davon versucht, eine funktionierende Umgebung auf den Laptop eines neuen Entwicklers zu bringen. Sie kosten alle Setup, Lizenz oder DIY-Glue. Eine Snapshot-URL kostet nichts davon — die Umgebung läuft schon.
Hör auf, README-Setup-Schritte auszuliefern. Liefere eine URL.