
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
خذ لقطة من بيئة التطوير الأساسيّة مرّة واحدة. منذ تلك اللحظة، كل موظّف جديد يحصل على رابط واحد. يفتحه على أي حاسوب محمول بحوزته فيجد نفسه في حاوية طازجة منسوخة من البيئة الأساسيّة — قاعدة الكود، التبعيّات، متغيّرات البيئة، قاعدة بيانات مزروعة، VSCode في المتصفّح. يكتب الكود في خمس دقائق. لا يُعدّ بيئة.
أهلاً وسهلاً! بيئة التطوير الخاصة بك جاهزة: https://devbox-jordan.hoody.dev. Postgres مهيّأ، المستودع مستنسخ، فقط cd ~/work && bun dev.
لقطات Hoody تلتقط حاويةً بأكملها — الملفات على القرص، حسابات المستخدمين، ملفات وحدات systemd، قاعدة البيانات المزروعة. نسخ الحاوية يستنسخ تلك اللقطة إلى حاوية طازجة لكل مطوّر. الرابط في البريد الإلكتروني هو المسار إلى تلك الحاوية الطازجة.
POST .../snapshotsخذ لقطة بسميّة لحاويتك المرجعيّة — أعطها اسم dev-baseline. كرّرها حين تتغيّر البيئة الأساسيّة.
POST .../copy [ source_snapshot ]استدعاء API واحد يستنسخ اللقطة إلى حاوية طازجة تحت مشروع المطوّر الجديد.
alex-laptop.containers.hoody.comالحاوية تأتي برابط عام منذ البداية. ألصقه في Slack. يفتحه. يصبح بالداخل.
ttyd · webview · sshhoody_kit يُضيء نقاط نهاية الطرفية ومستعرض الملفات وVSCode-في-المتصفّح تلقائياً. لا شيء للتثبيت على الحاسوب المحمول.
# 1. لقطة الأساس (افعل هذا مرة واحدة، انعش حين تحدّث Node)
curl -X POST "$API/api/v1/containers/$BASE/snapshots" \
-H "Authorization: Bearer $TOKEN" \
-d '[ "alias": "dev-baseline" ]'
# 2. انسخ اللقطة إلى حاوية جديدة طازجة للموظف الجديد
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. الاستجابة تحمل عنوان الحاوية. أرسله بالبريد. هذا هو الإعداد الأولي.
# => https://alex-laptop.containers.hoody.comطلبا POST ورابط واحد. اللقطة الأساسيّة هي العقد؛ نسخ الحاوية هو الباني؛ النطاق الفرعي الناتج هو ما يصل إلى بريد الترحيب. لا حصن لتوفيره، لا مستودع dotfiles لاستنساخه، لا ترخيص Docker Desktop للتفاوض عليه.
الـ README الذي اعتاد أن يُشحن مع كل مستودع حمل أوضاع الفشل أيضاً. نصف الأسطر كانت حلولاً التفافيّة للحاسوب المحمول الذي صادف أن أحضره الموظّف الجديد. الرابط أقصر لأنّ الحاسوب المحمول لم يعد في الصورة — البيئة هي ما في الصورة.
إلى: alex@acme.com · الموضوع: ترحيب
مرحباً بك في الفريق. افتح هذا حين تكون مستعدّاً لكتابة الكود:
— infra@acme
الـ README الذي اعتاد أن يكون 47 خطوة أصبح سطراً واحداً: افتح هذا الرابط.
كلٌّ من هذه يحاول إيصال بيئة عمل إلى حاسوب مطوّر جديد. كل واحدة تُكلّف إعداداً أو ترخيصاً أو لصاقة يدويّة. رابط لقطة لا يُكلّف شيئاً من ذلك — البيئة شغّالة أصلاً.
توقّف عن شحن خطوات إعداد README. اشحن رابطاً.