> ## Documentation Index
> Fetch the complete documentation index at: https://comfyui-mcp.artokun.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# النشر السحابي (RunPod)

> انشر واتصل وراقب وأوقف Pod وحدة GPU سحابية لـ ComfyUI دون مغادرة لوحة الوكيل — نشر بنقرة واحدة، ومبدّل مضيف صادق بين المحلي⇄الـ Pod، وحالة تكلفة/GPU حيّة، وإيقاف تلقائي عند الخمول. أو قُد Podًا موجودًا بأمر واحد.

ليست لديك وحدة GPU محلية — أو تريد أكبر عند الطلب؟ انشر ComfyUI على **Pod وحدة
GPU سحابية** وقُده باللغة الطبيعية من الوكيل العامل على **جهازك**، على اشتراك
Claude أو ChatGPT الخاص بك.

<Note>
  لا يخدم الـ Pod إلا **ComfyUI + Manager + واجهة لوحة الوكيل**. أمّا دماغ الوكيل
  ([منسّق اللوحة](/docs/docs/ar/panel)) فيعمل **محليًا على جهازك** على اشتراكك —
  فلا يحرق Pod سحابي ساعات GPU على النموذج اللغوي، ولا يلمس أي مفتاح API أو تسجيل
  دخول وكيل الصندوق. راجع [الطوبولوجيا](#الطوبولوجيا-أين-يعمل-الوكيل).
</Note>

## قالب بنقرة واحدة (أسرع مسار)

تقلع الصورة المبنية مسبقًا **جاهزة لتقودها لوحة الوكيل** — ComfyUI +
[لوحة الوكيل](https://github.com/artokun/comfyui-mcp-panel) +
ComfyUI-Manager v2 مخبوزة فيها، بلا إعداد:

[![Deploy on RunPod](https://img.shields.io/badge/Deploy_on-RunPod-673AB7?style=for-the-badge)](https://console.runpod.io/deploy?template=bnqtkvcer3\&ref=dkx71w9b)

1. انقر **Deploy on RunPod** واختر وحدة GPU (تعمل RTX 5090 / أي بطاقة Blackwell
   أو Ada — تشحن الصورة torch cu128).
2. أبقِ افتراضيات القالب: منفذ HTTP **3000** مكشوف ووحدة تخزين شبكية مركَّبة عند
   **`/workspace`**.
3. انتظر حتى يقلع الـ Pod. تخدم صفحة «ComfyUI is starting…» تتحدّث تلقائيًا حتى
   يصير جاهزًا (تهيئة ComfyUI نحو 30–60 ثانية).

ثم انتقل إلى [الاتصال من جهازك](#الاتصال-من-جهازك).

## انشره وتحكّم فيه من لوحة الوكيل (v0.44+)

منذ **comfyui-mcp 0.44**، لا تحتاج إلى لمس وحدة تحكّم RunPod ولا تشغيل أمر سطر
أوامر أصلًا — لدى [لوحة الوكيل](/docs/docs/ar/panel) **لوحة تحكّم RunPod** تنشر
وتتصل وتراقب وتوقف Podًا نيابة عنك، وتُشحن ورقة التحكّم نفسها في
[تطبيق الجوّال](/docs/docs/ar/mobile).

1. **اضبط مفتاحك مرة واحدة.** في بطاقة **مفاتيح API** في اللوحة، الصق
   `RUNPOD_API_KEY`. يُخزَّن من جانب الخادم في `~/.comfyui-mcp/.env` — لا في
   المتصفح أبدًا.
2. **افتح لوحة تحكّم RunPod** من شريحة المضيف في شريط أدوات اللوحة (تقرأ
   **🟢 محلي · جهازك** في البداية).
3. **انشر أو اتصل.** اضغط **نشر** لـ Pod بنقرة واحدة (يمر عبر رابط نشر القالب
   ويتراجع عبر أنواع GPU / COMMUNITY→SECURE حين تضيق السعة)، أو اختر Podًا
   موجودًا **بالاسم** من القائمة المنسدلة و**اتصال**.
4. **راقبه حيًّا.** تعرض بطاقة الحالة GPU / VRAM / مدة التشغيل / **$·hr** وعدًّا
   تنازليًا لـ **الإيقاف التلقائي عند الخمول**، وتنقلب شريحة المضيف إلى **🔵 RunPod · `<pod>` · GPU · $/hr** — فلا يبقى مكان تشغيل معالجة غامضًا.
   يثبّت الوكيل عقدك المخصّصة وملفات LoRA وينزّل نماذجك على الـ Pod، فتحصل على
   **تكافؤ لوحة رسم تام** مع جهازك المحلي.
5. **ارجع وأوقف.** يعيد **استخدام المحلي** توجيه المعالجة إلى جهازك فورًا؛
   و**إيقاف** يغلق الـ Pod. والإيقاف التلقائي عند الخمول
   (`RUNPOD_IDLE_STOP_MINUTES`، الافتراضي 15؛ لا يُعدّ إلا وأنت تعالج فعلًا على
   الـ Pod) هو حاجز التكلفة إن نسيت.

**مفتاح الرجل الميت (v0.47+).** يعيش الإيقاف التلقائي عند الخمول في عملية
comfyui-mcp — إن ماتت تلك العملية (تعطل، حاسوب محمول مغلق)، كان الحاجز يموت
معها وكان الـ Pod يفوتر إلى الأبد. وتحمل وحدات الـ Pod **المنشأة عبر الموصّل**
الآن مراقبًا من جانب الـ Pod: ما دام comfyui-mcp يرعى الـ Pod ينبض كل بضع ثوانٍ؛
وإن توقّفت النبضات، **يوقف الـ Pod نفسه** (لا ينهيه أبدًا — ينجو `/workspace`)
بعد فترة سماح (45 دقيقة بعد الإقلاع بلا نبض، ثم 20 دقيقة بين النبضات؛
`RUNPOD_DEADMAN_BOOT_GRACE_S` / `RUNPOD_DEADMAN_BEAT_GRACE_S`). و«الرعاية»
تنجو من **استخدام المحلي** و**إلغاء المراقبة** — فهذان يغيّران فقط ما تعرضه
الواجهة؛ ولا يطلق المراقب إلا حين يغيب comfyui-mcp نفسه (أو يخرج الـ Pod).
ويوقف المراقب الـ Pod بـ **مفتاح API مقيَّد بالـ Pod تحقنه RunPod تلقائيًا في
كل Pod** — فلا يغادر مفتاح حسابك الواسع جهازك أبدًا، ولا يوجد شيء من جهة
الاعتمادات للانسحاب منه. اتركه غير مسلَّح بـ `deadman:false` على
`runpod` / `action: "create"` (أو `RUNPOD_DEADMAN=0`)، أو `DEADMAN_DISABLE=1`
كمتغيّر بيئة للـ Pod. ووحدات الـ Pod المنشورة من الوحدة لا تحمل رمز النبض،
وتنشر القوالب المخصّصة (`RUNPOD_TEMPLATE_ID`) تعطّله **افتراضيًا** — مرّر
`deadman:true` فقط إن كانت تلك الصورة تشحن مراقبنا.

<Note>
  جديد على استئجار وحدات GPU لـ ComfyUI؟ تمشي المدوّنة التدفّق كله من طرف إلى طرف:
  [شغّل ComfyUI على وحدة GPU سحابية مستأجرة](/docs/docs/blog/runpod-comfyui).
</Note>

بقية هذه الصفحة هي **المسار اليدوي / سطر الأوامر** — ما يزال مدعومًا بالكامل،
وما تقوده لوحة التحكّم تحت الغطاء.

## الاتصال من جهازك

متى أقلع الـ Pod، خذ رابط وكيله العام (RunPod ← الـ Pod لديك ← نقطة نهاية HTTP
**:3000**، مثل `https://<pod-id>-3000.proxy.runpod.net`) وشغّل **أمرًا واحدًا**
على حاسوبك المحمول:

```bash theme={null}
npx -y comfyui-mcp@latest connect https://<pod-id>-3000.proxy.runpod.net
```

لـ **Pod بعيد عبر HTTPS**، يفتح `connect` تلقائيًا **نفق `wss://` مشفَّرًا
آمنًا** (عبر Cloudflare) إلى جسر الوكيل على جهازك ويسلّم لوحة الـ Pod ذلك
الرابط نيابة عنك — فتصل صفحة HTTPS الخاصة بالـ Pod إلى الوكيل **بلا موجه متصفح،
ولا شيء لنسخه، في أي متصفح**. ولـ ComfyUI **محلي** يستخدم جسر `ws://127.0.0.1:9180`
العادي على العنوان المحلي. وفي الحالين يعمل الوكيل — وتسجيل دخول Claude/ChatGPT
لديك — على **جهازك** فقط؛ ولا يُثبَّت شيء على الـ Pod.

للإنهاء، و`connect` ما يزال يعمل على جهازك، افتح ComfyUI الخاص بالـ Pod في
متصفحك، وافتح الشريط الجانبي **لوحة الوكيل**، وانقر **اتصال**.

ثم قُد المخطط باللغة الطبيعية.

<Note>
  **لماذا نفق؟** تُخدم صفحة الـ Pod عبر `https://`، وتحظر المتصفحات صفحة آمنة من
  فتح مقبس `ws://` غير آمن إلى جهازك (محتوى مختلط / وصول الشبكة الخاصة). يمنح
  النفق الجسر رابط `wss://` صالحًا لـ TLS — مقيَّدًا برمز عشوائي لكل جلسة — فيعمل
  في كل مكان بلا موجه.
</Note>

<Note>
  إن جلس الـ Pod خلف مصادقة، اضبط `COMFYUI_AUTH_TOKEN` (إضافةً إلى
  `COMFYUI_AUTH_HEADER` / `COMFYUI_AUTH_SCHEME` الاختياريين) على أمر `connect`
  المحلي. ولـ Pod أمامه **Cloudflare Access**، أنشئ **رمز خدمة** Access واضبط
  `CF_ACCESS_CLIENT_ID` + `CF_ACCESS_CLIENT_SECRET` — يركب كلاهما كل طلب ComfyUI
  (HTTP + WebSocket مراقب قائمة الانتظار)، فيمرّ الموصّل البوابة بينما تبقى صفحة
  تسجيل الدخول البشرية للمتصفحات.
</Note>

### أبقِ كل شيء على جهازك (بلا Cloudflare)

تفضّل ألا توجّه الجسر عبر Cloudflare؟ صل إلى الـ Pod عبر **تمرير منفذ SSH**
خاص بك حتى تكون الصفحة أصل عنوان محلي (`ws://` العادي يعمل، بلا نفق):

```bash theme={null}
ssh <pod-ssh> -L 3000:localhost:3000   # grab the SSH command from RunPod → Connect
npx -y comfyui-mcp@latest connect http://localhost:3000
```

ثم افتح **[http://localhost:3000](http://localhost:3000)**. أو اتصل على رابط https المباشر للـ Pod لكن
افرض جسر العنوان المحلي العادي بـ **`--insecure-bridge`** (ترتّب أنت عندها مسارك
الخاص حتى تصل صفحة الـ Pod إلى `ws://127.0.0.1:9180`).

تريد **بديلًا ثابتًا ذاتي الاستضافة** لنفق Cloudflare السريع الافتراضي — نطاقك،
بلا اسم مضيف عابر، وملكية كاملة لتلك القفزة — بدل أي مما سبق؟ راجع
[المُرحِّل ذاتي الاستضافة](/docs/docs/ar/self-hosted-relay).

## الطوبولوجيا: أين يعمل الوكيل

```
  YOUR LAPTOP                                   CLOUD GPU POD (RunPod)
  ┌───────────────────────────┐                ┌───────────────────────────────────┐
  │ npx comfyui-mcp connect …  │  HTTP/WS  ───▶ │ nginx :3000 ─▶ ComfyUI :3001        │
  │  └─ panel orchestrator     │                │   ├─ Manager v2 (--enable-manager) │
  │     (Claude/ChatGPT Agent  │ ◀───  events   │   └─ Agent Panel (sidebar)         │
  │      SDK on YOUR sub)      │                │                                     │
  └───────────────────────────┘                └───────────────────────────────────┘
```

يشحن الـ Pod عمدًا **بلا وكيل Node.js، وبلا Agent SDK، وبلا عميل نموذج لغوي** —
فستحرق ساعات GPU بلا طائل. تعيش حلقة الاستدلال على جهازك؛ والـ Pod خلفية ComfyUI
خالصة. وهذا [نموذج القيادة عن بُعد](/docs/docs/ar/panel) نفسه الذي تستخدمه لوحة الوكيل
المحلية، لكن مع ComfyUI على وحدة GPU سحابية بدل localhost.

## ما الذي يبقى (وما الذي لا يبقى)

الصورة محسَّنة لـ **إيقاف/بدء سريع**. البرمجيات الثقيلة — ComfyUI، وبيئة venv،
وManager v2 — مخبوزة في الصورة غير القابلة للتغيير وتُشغَّل من `/opt/ComfyUI`،
بينما يعيش `custom_nodes` على وحدة تخزين `/workspace` (برابط رمزي) فتنجو
تثبيتاتك. وإعادة تشغيل دافئة لا تفعل تثبيتًا/مزامنة/بذرًا كاملًا وتعيد إطلاق
ComfyUI فقط.

| ما                                                 | أين يعيش                                            | هل ينجو من إعادة التشغيل؟ |
| -------------------------------------------------- | --------------------------------------------------- | ------------------------- |
| النماذج (بما فيها تنزيلات Manager)                 | وحدة التخزين `/workspace/models`                    | **نعم**                   |
| مسارات سير العمل + إعدادات ComfyUI + إعداد Manager | وحدة التخزين `/workspace/user`                      | **نعم**                   |
| المدخلات / المخرجات                                | وحدة التخزين `/workspace/input`، `/output`          | **نعم**                   |
| **العقد المخصّصة** (تثبيتات الوكيل/Manager)        | وحدة التخزين `/workspace/custom_nodes` (برابط رمزي) | **نعم**                   |
| تثبيت ComfyUI + venv + Manager                     | الصورة `/opt/ComfyUI`                               | يُعاد سحبها مع الصورة     |

<Note>
  **تنجو العقد المخصّصة المثبَّتة وقت التشغيل من إعادة التشغيل.** `custom_nodes`
  مربوط رمزيًا بـ `/workspace/custom_nodes`؛ وفي كل إقلاع تُبذَر/تُحدَّث عقد الصورة
  المخبوزة (لوحة الوكيل + المدمجة) فيه (فترسل ترقية صورة لوحة حديثة بينما تُحفَظ
  عقدك)، وتُعاد تثبيت اعتماديات Python لكل عقدة في بيئة venv من **ذاكرة pip مؤقّتة
  دائمة** على وحدة التخزين — سريعة بعد المرة الأولى. وتنجو النماذج أيضًا. لخبز عقدة
  حتى لا تحتاج عملًا عند الإقلاع، أضِفها إلى `Dockerfile` وأعد بناء الصورة (أدناه).
</Note>

## ابنِ صورتك وانشرها

قالب النقرة الواحدة هو الصورة المبنية مسبقًا. و**صورة نحيفة مبنية مسبقًا** —
ComfyUI + لوحة الوكيل + Manager نفسها، لكن بلا إضافات المتبرّع الاختيارية
(`runpod-uploader`/`croc`/`app-manager`) ولا ملف Checkpoint فحص SDXL المخبوز،
تُبنى باستمرار في CI — عامة أيضًا على
[`ghcr.io/artokun/comfyui-mcp-runpod:cu128-lean`](https://github.com/artokun/comfyui-mcp/pkgs/container/comfyui-mcp-runpod)
إن أردت فقط توجيه قالب RunPod إلى شيء دون بناء أي شيء بنفسك.

لتخصيصها — تثبيت إصدارات، وخبز عقد مخصّصة إضافية، وتغيير تخطيط النماذج — ابنِ
وادفع صورتك من
[`docker/runpod/`](https://github.com/artokun/comfyui-mcp/tree/main/docker/runpod):

```bash theme={null}
cd docker/runpod
docker build -t <your-registry>/comfyui-mcp-runpod:cu128 .
docker push     <your-registry>/comfyui-mcp-runpod:cu128
```

لا حاجة إلى وحدة GPU وقت البناء. ثم أنشئ **قالب Pod** في RunPod موجَّهًا إلى
صورتك مع **منفذ HTTP 3000** مكشوف و**وحدة تخزين شبكية عند `/workspace`**.

و[`docker/runpod/README.md`](https://github.com/artokun/comfyui-mcp/blob/main/docker/runpod/README.md)
هو مرجع البناء الكامل — Dockerfile متعدّد المراحل، ورايات إطلاق ComfyUI الدقيقة،
وتعيين وحدة التخزين في `extra_model_paths.yaml`، وبوابة التثبيت البعيد في
Manager، ومتغيّرات البيئة، ومفاضلات الحجم/التثبيت.

## أهداف سحابية أخرى

تدفّق `connect` ليس خاصًا بـ RunPod — يعمل ضد **أي** ComfyUI قابل للوصول يخدم
لوحة الوكيل (مضيف سحابي آخر، أو VPS، أو جهاز على شبكتك المحلية). وجّه `connect`
إلى رابطه وقلّب مفتاح المنسّق الخارجي:

```bash theme={null}
npx -y comfyui-mcp@latest connect https://your-comfyui.example.com
```

لعرض **comfyui-mcp نفسه** خادم MCP مستضافًا بمصادقة (بدل نشر ComfyUI)، راجع
[الموصّل البعيد / المستضاف](/docs/docs/ar/remote-connector).
