انتقل إلى المحتوى
use-cases / onboard-developer-one-link / hero
اللقطات · نسخ الحاوية

درّب مطوراً جديداً برابط واحد

خذ لقطة من بيئة التطوير الأساسيّة مرّة واحدة. منذ تلك اللحظة، كل موظّف جديد يحصل على رابط واحد. يفتحه على أي حاسوب محمول بحوزته فيجد نفسه في حاوية طازجة منسوخة من البيئة الأساسيّة — قاعدة الكود، التبعيّات، متغيّرات البيئة، قاعدة بيانات مزروعة، VSCode في المتصفّح. يكتب الكود في خمس دقائق. لا يُعدّ بيئة.

اقرأ توثيق اللقطات
use-cases / onboard-developer-one-link / mechanism

كيف يصبح الرابط حاسوباً عاملاً

لقطات Hoody تلتقط حاويةً بأكملها — الملفات على القرص، حسابات المستخدمين، ملفات وحدات systemd، قاعدة البيانات المزروعة. نسخ الحاوية يستنسخ تلك اللقطة إلى حاوية طازجة لكل مطوّر. الرابط في البريد الإلكتروني هو المسار إلى تلك الحاوية الطازجة.

POST /api/v1/containers/[baseline_id]/copy4 خطوات · استدعاء API واحد
01

خذ لقطة من البيئة الأساسيّة مرّة واحدة

POST .../snapshots

خذ لقطة بسميّة لحاويتك المرجعيّة — أعطها اسم dev-baseline. كرّرها حين تتغيّر البيئة الأساسيّة.

02

انسخ مع كل توظيف جديد

POST .../copy [ source_snapshot ]

استدعاء API واحد يستنسخ اللقطة إلى حاوية طازجة تحت مشروع المطوّر الجديد.

03

رابطهم هو الحاوية

alex-laptop.containers.hoody.com

الحاوية تأتي برابط عام منذ البداية. ألصقه في Slack. يفتحه. يصبح بالداخل.

04

طرفية، ملفات، متصفّح

ttyd · webview · ssh

hoody_kit يُضيء نقاط نهاية الطرفية ومستعرض الملفات وVSCode-في-المتصفّح تلقائياً. لا شيء للتثبيت على الحاسوب المحمول.

onboard-alex.sh
# 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 للتفاوض عليه.

use-cases / onboard-developer-one-link / contrast

من جدار خطوات إلى جملة واحدة

الـ README الذي اعتاد أن يُشحن مع كل مستودع حمل أوضاع الفشل أيضاً. نصف الأسطر كانت حلولاً التفافيّة للحاسوب المحمول الذي صادف أن أحضره الموظّف الجديد. الرابط أقصر لأنّ الحاسوب المحمول لم يعد في الصورة — البيئة هي ما في الصورة.

README.md · setup47 خطوة
  • 01ثبّت Xcode CLI tools
  • 02ثبّت Homebrew
  • 03brew install node@20 pnpm postgres@15
  • 04أضف أسطر PATH إلى .zshrc
  • 05createdb acme_dev
  • 06استنسخ مستودع البيانات الأوّليّة
  • 07شغّل المُحمِّل (يستغرق 25 دقيقة)
  • 08اسأل في #devops عن .env لـ staging
  • ...39 سطراً آخر ستخطئ فيها
متوسّط الزمن لأوّل commitيومان
يصبح
بريد الترحيب · v2سطر واحد

إلى: alex@acme.com · الموضوع: ترحيب

مرحباً بك في الفريق. افتح هذا حين تكون مستعدّاً لكتابة الكود:

https://alex-laptop.containers.hoody.com

— infra@acme

الزمن لأوّل commitخمس دقائق
use-cases / onboard-developer-one-link / dayone
اليوم الأوّل · إثنين أليكس

الـ README الذي اعتاد أن يكون 47 خطوة أصبح سطراً واحداً: افتح هذا الرابط.

08:59 — حاسوب مفتوح، رابط في الحافظة09:04 — أوّل commit مرفوع
أوّل commit، بالساعةخمس دقائق · صفر تثبيتات
0108:59الرابط يصل إلى البريدلا إعداد حاسوب
0209:00افتح الرابط — صرت بالداخلالحاوية هي مساحة العمل
0309:04أوّل commit مرفوعكتابة كود، لا إعداد
ملفاتقاعدة الكود مُستنسَخة، الفرع على main
تبعيّاتNode، pnpm، Postgres، Redis مُثبَّتة مسبقاً
بياناتقاعدة بيانات مزروعة، .env لـ staging مُحقَن
use-cases / onboard-developer-one-link / replaces

ما يستبدله هذا

كلٌّ من هذه يحاول إيصال بيئة عمل إلى حاسوب مطوّر جديد. كل واحدة تُكلّف إعداداً أو ترخيصاً أو لصاقة يدويّة. رابط لقطة لا يُكلّف شيئاً من ذلك — البيئة شغّالة أصلاً.

  • GitHub Codespacesفوترة لكل مقعد، devcontainer.json لصيانته
  • Gitpodتسعير لكل workspace، .gitpod.yml لتنقيحه
  • Daytonaمستوى تحكّم مستضاف ذاتياً لتشغيله
  • Coderقوالب وبنية تحتيّة للموفِّر لتتفقّدها
  • إعداد Devcontainerترخيص Docker Desktop + رقصة VSCode لكل حاسوب
  • تطوير محلييومان من brew وpaths وطلبات .env في #devops
  • وثائق التدريب47 خطوة تنحرف لحظة تحديث أحدهم البيئة الأساسيّة
use-cases / onboard-developer-one-link / cta

توقّف عن شحن خطوات إعداد README. اشحن رابطاً.

اقرأ دليل نسخ الحاوية
use-cases / onboard-developer-one-link / related

اقرأ الآخرين