انتقل إلى المحتوى

الحلول · وكلاء البرمجة

خادم VPS لتشغيل OpenHands

OpenHands وكيل برمجة مستقل: تعطيه مستودعًا ومهمة فيعدّل ويشغّل ويختبر ويفتح طلبات الدمج بنفسه، بالنموذج الذي تختاره خلف مفتاح API. يقول ملف README الخاص به إن أقوى طريقة لتشغيله هي على خادم في السحابة، ويحذّر هو نفسه من أن الوكيل يملك وصولًا كاملًا إلى الجهاز الذي يعمل عليه. وكلاهما يشير إلى الجواب نفسه: جهاز ليس حاسوبًا محمولًا لأحد. يرى دليل الخادم الخاص بالمشروع أن 2 vCPU و4 GB كافية تمامًا لمستخدم واحد؛ والخطة BD-8 بسعر $12.90 شهريًا تمنحه ضعف ذلك بأقل من أجهزة 4 GB في أماكن أخرى.

ما يحتاج إليه

برامج من الوثائق، وأحجام موسومة بمصدرها

البرنامج والوضع الأمني مأخوذان من وثائق المشروع نفسه. وحيث لا ينشر المشروع أي رقم للعتاد، تبيّن الأحجام صاحب كل رقم.

من README الخاص بـ OpenHands وSELF_HOSTING.md والوثائق

  • «2 vCPU / 4 GB RAM كافية تمامًا لمستخدم واحد» (دليل الأجهزة الافتراضية للمشروع). وتطلب الوثائق «معالجًا حديثًا و4GB RAM كحد أدنى».
  • التثبيت: Node.js 24 أو أحدث وuv، ثم npx @openhands/agent-canvas --public. أمر واحد يشغّل خادم الوكيل والواجهة الخلفية للأتمتة وتطبيق الويب خلف بوابة دخول على 127.0.0.1:8000.
  • اضبط LOCAL_BACKEND_API_KEY قبل التشغيل الأول: في الوضع العام يجب أن يحمله كل استدعاء API، ويطلبه تطبيق الويب قبل أي شيء آخر. أغلق بالجدار الناري كل شيء ما عدا SSH أولًا؛ فالدليل يقول بفعل ذلك قبل أن يعمل الوكيل أصلًا.
  • مفتاح API من مزوّد نماذج: تقول الوثائق إن OpenHands يحتاج إليه لمعظم النماذج. Docker اختياري ولا يلزم إلا إذا أردت عزل كل محادثة في حاوية خاصة بها. لا حاجة إلى GPU إلا إذا استضفت النموذج بنفسك.

الأحجام (رقم المشروع، ثم تقديرنا)

الأحجام حسب عبء العمل
حمل العملvCPURAM
مستخدم واحد، نماذج مستضافة، الوكيل على المضيف (الطريقة الرسمية)رقم الدليل نفسه. يعمل خادم الوكيل مباشرة على الجهاز، فيكون الجهاز نفسه هو بيئة العزل.24 GB
مستخدم أو اثنان، وحاوية Docker معزولة لكل محادثةتقديرنا. تحصل كل محادثة على حاوية؛ وتجري داخلها عمليات تثبيت الاعتماديات والبناء ومجموعات الاختبار.48 GB
خادم وكلاء مشترك لفريق، عدة وكلاء في آن واحدتقديرنا. وكلاء متوازيون على مستودعات متوازية، كلٌّ منها يبني شيئًا.824 GB

الخطط المناسبة

5 أجهزة بأسعار حية

الجهاز المناسب الأرخص أولاً. الأسعار هي أسعار اليوم، شهرياً، مأخوذة من الكتالوج.

  • BD-8$12.90/شهر

    4 vCPU · 8 GB · قرص 100 GB · 32 TB

    الأرخص مع مساحة للبناء والاختبار. 4 vCPU و8 GB و100 GB و32 TB من نقل البيانات، بسعر أقل من أجهزة 4 GB في أماكن أخرى. ضعف رقم الدليل؛ وحزم الاختبارات تستفيد من الأنوية.

  • U2-4-40$14.90/شهر

    2 vCPU · 4 GB · قرص 40 GB · Unmetered

    رقم الدليل تمامًا، Unmetered، إسطنبول. 2 vCPU / 4 GB / 40 GB. مستخدم واحد، نماذج مستضافة، والوكيل على المضيف. حركة بيانات غير محسوبة لعمليات الاستنساخ وتثبيت الحزم.

  • BD-24$31.90/شهر

    8 vCPU · 24 GB · قرص 300 GB · 32 TB

    8 vCPU / 24 GB لخادم وكلاء لفريق. عدة وكلاء في وقت واحد، وحاويات Docker معزولة، والواجهة الخلفية للأتمتة وفق جدول زمني.

  • C2-4-80$37.90/شهر

    2 vCPU · 4 GB · قرص 80 GB · 3 TB

    رقم الدليل، في عشرات المدن. 2 vCPU / 4 GB / 80 GB. اختره من أجل المدينة؛ واكتفِ بمحادثة واحدة في كل مرة.

  • C4-8-160$75.90/شهر

    4 vCPU · 8 GB · قرص 160 GB · 3 TB

    4 vCPU / 8 GB / 160 GB، في عشرات المدن. الحجم المريح مع مساحة قرص لنسخ كثيرة من المستودعات وصور Docker.

لا يوجد إعداد مسبق جاهز لـ OpenHands بعد: التثبيت هو الخطوات الخمس أدناه، تكتبها بنفسك، بالترتيب الذي يقدّمه دليل المشروع. الجدار الناري أولًا، ثم المفتاح، ثم الوكيل.

التثبيت

خمس خطوات، بالترتيب الذي يذكره دليل OpenHands نفسه

الدليل صريح في أن الجدار الناري يأتي قبل التشغيل الأول، لأن خادم الوكيل يتصرف بحرية في الجهاز، ولا يفصل بينه وبين أي غريب سوى الجدار الناري والمفتاح.

  1. الجدار الناري أولًا. ufw allow OpenSSH && ufw --force enable لا شيء وارد سوى SSH. يجب ألا يكون مدخل الحركة (8000) وخادم الوكيل (18000) وخلفية الأتمتة (18001) والخادم الثابت (3001) قابلة للوصول من الخارج؛ والدليل يقول ذلك بهذه الكلمات.
  2. Node.js 24 وuv. apt-get install -y curl git curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs curl -LsSf https://astral.sh/uv/install.sh | sh يشغّل uv خادم الوكيل؛ ويثبّته الدليل بالمثبّت ذي السطر الواحد من astral.sh.
  3. أنشئ المفتاح، وابدأ في الوضع العام. export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public انسخ المفتاح إلى مكان آمن قبل المتابعة؛ فالوضع العام يعني أن تطبيق الويب سيطلبه منك. للتشغيل طويل الأمد، استخدم وحدة systemd الواردة في الدليل في /etc/systemd/system/agent-canvas.service وفيها Environment=LOCAL_BACKEND_API_KEY=…، ثم systemctl enable --now agent-canvas.
  4. صِل إليه عبر SSH، وأضف النموذج. ssh -N -L 8000:127.0.0.1:8000 root@your-server ثم http://127.0.0.1:8000، والصق المفتاح، ثم Settings: اختر مزوّد LLM والنموذج والصق مفتاح API الخاص بذلك المزوّد. ابدأ محادثة على مستودع.
  5. اختياريًا، نطاق. وجّه سجل A إلى الخادم، وافتح 80 و443، ثم apt-get install -y nginx certbot python3-certbot-nginx، وكتلة nginx الواردة في الدليل التي تمرّر الطلبات إلى 127.0.0.1:8000 مع ترويسات WebSocket؛ ويحصل certbot --nginx -d canvas.example.com --redirect على الشهادة. إذا كان لا بد من فتح 443 للعالم، فالدليل يقول إن المفتاح هو خط دفاعك الأساسي، فاجعله طويلًا وسريًا.

بصراحة

ما كنا سنشتريه فعلاً

يقول الدليل إن 2 vCPU و4 GB كافية تمامًا لمستخدم واحد. اشترِ جهاز 8 GB الذي يكلّف أقل من أجهزة 4 GB، ودع الوكيل يبني ما يشاء.

لوكيل برمجة لشخص واحد

BD-8 · $12.90/شهر

4 vCPU و8 GB و100 GB بسعر $12.90: خادم الوكيل، وبضعة مستودعات منسوخة، وأشجار اعتمادياتها، ومجموعة اختبارات تعمل وأنت تراقب، مع ذاكرة متبقية إن فعّلت حاويات Docker المعزولة. النموذج في مكان آخر، خلف مفتاح API، فلا يحتاج هذا الجهاز أبدًا إلى GPU، والفاتورة المهمة هي فاتورة المزوّد. C2-4-80 بسعر $37.90 هي رقم الدليل بالضبط في عشرات المدن، إن كانت المدينة أهم لديك من الأنوية.

أسئلة

ما يسأل عنه الناس قبل الشراء.

كم من RAM يحتاج OpenHands؟
يقول دليل الأجهزة الافتراضية الخاص بالمشروع إن 2 vCPU و4 GB من RAM كافية تمامًا لمستخدم واحد، وتوصي وثائقه بمعالج حديث و4 GB كحد أدنى. وهذا يغطي خادم الوكيل والواجهة الخلفية للأتمتة وتطبيق الويب مع نماذج مستضافة. أما ما يفعله الوكيل بعد ذلك، من استنساخ المستودعات وتثبيت الاعتماديات وتشغيل عمليات البناء والاختبارات، فهو عمل مطوّر عادي يحتاج إلى موارد مطوّر عادية، ولهذا فإن أرخص جهاز في هذه الصفحة فيه 4 أنوية و8 GB بدلًا من الحد الأدنى بالضبط.
لماذا أشغّله على خادم بدلًا من حاسوبي المحمول؟
سببان من ملف README نفسه. يقول إن أقوى طريقة لتشغيل OpenHands هي على خادم في السحابة، فيستمر الوكلاء في العمل عندما يكون حاسوبك مغلقًا، ويمكن تشغيلهم من Slack أو GitHub أو webhook. ويحذّر من أن خادم الوكيل يعمل مباشرة على الجهاز بوصول كامل إلى نظام الملفات وسطر الأوامر والشبكة. والجهاز الذي لا يحمل سوى الوكيل والمستودعات التي يعمل عليها هو الطريقة الصادقة لمنحه هذا الوصول.
هل يحتاج إلى مفتاح API، أم يمكنه استخدام نموذج محلي؟
تقول وثائق OpenHands إنه يتطلب مفتاح API للوصول إلى معظم النماذج اللغوية، وتسرد مزودي الاستضافة الذين توصي بهم. النموذج المحلي عبر Ollama أو خادم مشابه مدعوم، لكن الوثائق تضيف أن عمل الوكيل الفعّال على النماذج المحلية يحتاج إلى عتاد قادر ونماذج مضبوطة لاتباع التعليمات. عمليًا: نموذج مستضاف ومفتاح API على هذا الجهاز، وإن أردت نموذجًا محليًا، فخادم نماذج منفصل بحجم محدد في صفحة Ollama أو فئة GPU.
ماذا يفعل --public وLOCAL_BACKEND_API_KEY؟
بدون --public، يحقن التطبيق مفتاح الجلسة في صفحة الويب تسهيلًا، وهو ما يصفه ملف README بأنه غير آمن لنشر يمكن الوصول إليه علنًا. مع --public، لا يكون المفتاح في الصفحة: على كل من يفتح تطبيق الويب أن يلصق LOCAL_BACKEND_API_KEY أولًا، ويجب أن يحمله كل استدعاء للـ API. ترتيب الدليل هو الجدار الناري، ثم المفتاح، ثم التشغيل، ويولّد المفتاح بالأمر openssl rand -base64 32.
هل أحتاج إلى Docker؟
ليس للتثبيت الافتراضي، الذي يشغّل خادم الوكيل على المضيف مع Node 24 وuv. يُستخدم Docker للأوضاع المعزولة: تشغيل المنظومة كاملة من صورة المشروع، أو منح كل محادثة حاويتها الخاصة كي تعمل عدة وكلاء في وقت واحد دون مشاركة نظام ملفات. يشير ملف README إلى أن العزل يفصل تنفيذ المحادثات، لا التطبيق بأكمله. إن أردته، ثبّت Docker وخصّص له صف 8 GB أو أكثر.
ما المنافذ المعنية؟
كل شيء مرتبط بـ loopback: وكيل مدخل الحركة على 127.0.0.1:8000 يوجّه إلى الخادم الثابت على 3001 وخادم الوكيل على 18000 وخلفية الأتمتة على 18001. تصل إلى 8000 عبر نفق SSH، أو عبر nginx على 443 إذا أضفت نطاقًا. يجب ألا يكون أي من هذه المنافذ الأربعة مفتوحًا في الجدار الناري؛ فالدليل يذكرها بأرقامها على أنها المنافذ التي يجب ألا تكون قابلة للوصول من الخارج.