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

# النشر على خادم

> شغّل وولفيش على خادمك الخاص — أمر تثبيت واحد، وخدمة خلفية تنجو من إعادة التشغيل، وهاتفك الواجهة اليومية

# آلة لا تنام

وولفيش تطبيقُ سطح مكتبٍ أولاً — خاصّ، محلّي، على جهازك — وتلك تبقى الطريقة الأولى لتشغيله. لكنّ وكيلاً يجيب على تيليجرام في الثالثة فجراً، ويشغّل [التأمّل](/ar/memory/reflection) الليلي، ويطلق [الأتمتة](/ar/configuration/heartbeat) في مواعيدها، يريد آلةً لا تنام أبداً، ولا تعيش على بطارية، ولا تُحمل في حقيبة. ومنذ **الإصدار 1.0.239** يعمل التطبيق نفسه **بلا رأس** على خادم: الوكيل بأكمله — القنوات، والأتمتة، والذاكرة، وMCP، وكلّ شيء — بلا نافذةٍ ولا شريط نظام، تقوده [طرفية CLI](/ar/getting-started/cli)، ويوماً بيوم، [هاتفُك](#هاتفك-هو-الواجهة).

والطريق كلّه — التثبيت، والإقلاع بلا رأس، وخدمة systemd، واتصال CLI — متحقَّقٌ منه **من طرفٍ إلى طرف على خادم Ubuntu 24.04 نقيّ**. لا خادم عرض مطلوب، ولا Docker، ولا Node.

## التثبيت

أمرٌ واحد، جذراً أو بـ sudo:

```bash theme={null}
curl -fsSL https://releases.wolffi.sh/install.sh | sh
```

يختار المثبّت الحزمة الأصلية حيث استطاع — `.deb` على أنظمة apt، و`.rpm` على dnf/zypper/yum — ويسقط إلى AppImage المحمولة في أيّ مكانٍ آخر، كلّها تحت `$HOME` بلا حاجةٍ إلى جذر. والتنزيلات تُتحقَّق ضدّ sha512 في بيان الإصدار قبل أن يُثبَّت شيء.

وهو أيضاً عسيرٌ على الكذب عن عمد. فالمثبّت **يسأل مدير الحزم هل الحزمة مثبَّتة ومضبوطة حقاً** بدل أن يثق برموز الخروج — فطريقة apt في «إصلاح» اعتماديةٍ متعذّرة هي أن يزيل الحزمة التي فكّها للتوّ ويبلّغ عن النجاح. وهو يجدّد قوائم الحزم البائتة ويعيد المحاولة قبل أن يستنتج شيئاً (فصورة الخادم الجديدة كثيراً ما لا يفصلها عن العمل إلا `apt-get update` واحد)، ولا يدع مدير الحزم *يزيل* أشياء ليُنجح تثبيتاً، وينظّف وراء نفسه بدل أن يترك حزمةً نصفَ مفكوكة تكسر كلّ `apt` لاحق، وحين يعجز حقاً عن المضيّ يسمّي المكتبات الناقصة بأسمائها.

وعلى تثبيت `.deb`/`.rpm`، أمرُ `wolffish` **تشحنه الحزمة نفسها** عند `/usr/bin/wolffish` — موجودٌ لحظةَ ينتهي التثبيت: لا إقلاع أوّل، ولا سطر PATH، ولا صدفة جديدة، والأمر نفسه لكلّ حسابٍ على الآلة. أمّا على طريق AppImage فيكتب المثبّت سطر PATH في ملفّ صدفتك نيابةً عنك (مرّةً واحدة، إلى الأبد — و`--no-modify-path` إن أحببت أن يُبعد يديه عن ملفّاتك).

<Note>
  اسمان، عن قصد: `wolffish` هو عميل الطرفية، و`wolffish-app` هو ثنائية التطبيق. فبرنامجان مختلفان يجيبان باسمٍ واحد، يفصل بينهما ترتيب PATH، قرعةُ عملةٍ لا يستطيع أحدٌ تنقيحها.
</Note>

## الاتصال الأول

```bash theme={null}
wolffish
```

هذا إجراء الإقلاع كلّه. الأمر الأوّل **يُقلع الوكيل بنفسه** — في الخلفية، بلا رأس، وكلُّ ما يحتاجه خادمٌ جذريّ مطبَّقٌ سلفاً — ثم يتّصل. ومن هناك، جهّزه تماماً كما تجهّزه في التطبيق، لأنّه *هو* التطبيق:

```bash theme={null}
wolffish keys set deepseek        # typed hidden, tested before saving
wolffish brain deepseek deepseek-v4-flash
wolffish settings                 # browse everything: page → card → setting
wolffish status                   # daemon · brain · autostart · channels
```

كلُّ ما يضبطه سطح المكتب تضبطه الطرفية — [المزوّدون](/ar/configuration/providers)، و[القنوات](/ar/channels/overview)، و[القدرات](/ar/capabilities/overview)، و[خوادم MCP](/ar/integrations/mcp)، و[الأتمتة](/ar/configuration/heartbeat)، و[جداول الذاكرة](/ar/memory/consolidation). انظر صفحة [طرفية CLI](/ar/getting-started/cli) للسطح كاملاً.

<Warning>
  دخول الخادم يكون عادةً **جذراً**، وChromium يأبى العمل جذراً دون `--no-sandbox` — فيطبّقه وولفيش على كلّ مسار إقلاع. والتطبيق يعمل خارج الصندوق المعزول عن تصميمٍ على كلّ منصّة: فالصندوق يضبط `no_new_privs`، وذلك كان سيكسر كلَّ `sudo` يستدعيه الوكيل من الصدفة. وعلى خادمٍ شخصيّ هذه هي الهيئة المقصودة؛ وهي سببٌ إضافيّ لأن يكون جهاز وولفيش *جهازك أنت*، لا جهازاً مشتركاً.
</Warning>

## النجاة من إعادة التشغيل

العملية الخلفية التي تُقلعها CLI تعيش حتى تُعاد الآلة. ولكي يعود وولفيش من تلقاء نفسه:

```bash theme={null}
wolffish service install --headless
```

على لينكس يسجّل هذا **وحدة systemd للمستخدم** ويفعّل **البقاء (lingering)** — فمن دون البقاء تموت خدمة المستخدم لحظةَ تنتهي جلسة SSH، وذلك نقيض وعد الدوام بالضبط. والوحدة بلا بقاءٍ يُبلَّغ عنها تحذيراً لا حالاً سليمة، ومعها الأمر الدقيق لإصلاحها. والوحدة تُقلع وولفيش عند الإقلاع، وتعيد تشغيله إن مات، ولا تمسك جلسةً ولا نافذةً البتّة.

```bash theme={null}
wolffish service status    # registered? which mechanism? which mode?
wolffish service logs -f   # tail the daemon log
wolffish service stop      # stop the running daemon (it returns at next boot)
wolffish service uninstall # deregister; ~/.wolffish is untouched
```

والفعل نفسه يعمل على كلّ منصّة، مختاراً الآليّة الأصلية: عميل **launchd** على macOS، ومهمّة **Task Scheduler** على ويندوز، و**systemd مع البقاء** على لينكس. ومن دون `--headless` يسجّل عنصرَ دخولٍ بدلاً من ذلك — يبدأ حين تسجّل دخولك ويفتح النافذة — وذلك الوضع الصحيح لحاسوبٍ محمول والخطأ لخادم. ولأنّ الخدمة الخلفية تُسجَّل لتبقى عاملة (أغلقها، فيعيدها النظام في ثوانٍ)، فإنّ اختيارها يستأذن أولاً.

<Note>
  لا يوجد `start` يُحفظ: العملية الخلفية تُقلع **عند الطلب** — أيُّ أمر `wolffish` يُحضرها — والخدمة تُحضرها عند الإقلاع. و`wolffish service stop` هو الطريق المتعمَّد إلى الأسفل.
</Note>

## هاتفك هو الواجهة

**هذه هي الهيئة الموصى بها لتثبيت الخادم.** فـ CLI هي طريقتك في إدارة الجهاز؛ و[تطبيق الهاتف](/ar/integrations/mobile-app) هو طريقتك في *العيش* معه. اقترن مرّةً واحدة فيحمل هاتفك السطحَ اليومي للخادم: خيط المحادثة ببطاقات أدواته وملفاته، وكلّ محادثةٍ تُبثّ حيّة، و[المشاريع والإجراءات والأتمتة](/ar/integrations/mobile-app#مساحة-العمل-قابلة-للتحرير) — تُحرَّر من الهاتف، على ملفّات الخادم نفسها — ووثائق التخصيص الثلاث، والقدرات، والمتغيّرات، ودفتر الاستهلاك، و[التشخيص](/ar/debugging/diagnostic-export)، و[إشعارات الدفع](/ar/integrations/notifications) حين ينتهي تشغيلٌ أو يخفق أو يحتاج إليك. فالخادم بلا رأسٍ مع هاتفٍ مقترن ليس وولفيش منقوصاً؛ بل هو تجربة سطح المكتب وقد نُزع منها المكتب.

والاقتران من الطرفية مبنيٌّ لجهازٍ لا شاشة له:

```bash theme={null}
wolffish pair phone          # a QR drawn in the terminal, if the window fits it
wolffish pair phone --code   # an 8-character code: type it on the phone
```

ورمز QR يُقاس قبل أن يُرسم — يحتاج 27 صفاً في الطرفية، ونافذة SSH الافتراضية فيها 24 — فحين لا يتّسع يتحوّل الأمر إلى **الرمز المكتوب** من تلقاء نفسه. والرمز (`K7M9-2QXR`، وحجم الحرف والشُّرَط مغفوران) ينقضي في نحو ثلاث دقائق؛ ولّد غيره متى شئت. والنفق الناتج هو نفسه الذي يستعمله سطح المكتب: **مشفَّرٌ من طرفٍ إلى طرف، صادرٌ فقط**، عبر [المُرحِّل الأعمى](/ar/integrations/mobile-app).

<Note>
  أتستضيف المُرحِّل ذاتياً أيضاً؟ الرمز المكتوب لا يحمل إلا السرّ — **فاكتب عنوان مُرحِّلك في بطاقة المُرحِّل على شاشة اقتران الهاتف** كذلك. أمّا رمز QR فيحمل العنوان عنك.
</Note>

وبقيّة القنوات تقترن من الموضع نفسه — وطرقها في الطرفية موجودةٌ بالضبط لأنّ الخادم يحتاجها: `wolffish pair telegram` يأخذ رمز البوت مكتوباً مخفيّاً، و`wolffish pair whatsapp --number +…` يربط **برقم الهاتف** برمزٍ من ثمانية محارف، لأنّ رمز QR لواتساب لا يتّسع في نافذة SSH أبداً.

## ما يستطيعه الخادم وما لا يستطيعه

كلُّ ما هو *الوكيل* يعمل بلا رأس: المحادثة على كلّ قناة، والأتمتة والإجراءات في مواعيدها، و[نظام الذاكرة](/ar/memory/overview) كاملاً، وخوادم MCP، وتوليد الفيديو، وأعمال الملفات، ونفق الهاتف، والإشعارات. وجدولُ قنوات الوكيل نفسه يُبقى صادقاً أيضاً — فعلى جهازٍ بلا رأس تُبلَّغ محادثة التطبيق **غير متاحة**، فلا يظنّ النموذج أبداً أنّ نافذةً مفتوحة وأنّ أحداً هناك ليجيب فيها.

وما يحتاج سطحَ مكتبٍ يبقى على سطح المكتب: [إضافة المتصفح](/ar/integrations/browser-extension) (فلا متصفّح تُحمَّل فيه)، واستخدام الحاسوب (فلا شيء يُلتقط له)، وفتح الملفات بنظام التشغيل — `/open` يطبع المسار بدلاً من ذلك. وكلُّ رفضٍ كهذا يسمّي طريقةَ الطرفية نفسها إلى الشيء ذاته.

## شكل سطح الهجوم

خادمُ وولفيش **لا يكشف للشبكة شيئاً**. لا واجهة ويب، ولا منفذ API، ولا شيءَ وارداً البتّة:

* تخاطب CLI العمليةَ الخلفية عبر **مقبس Unix** عند `~/.wolffish/cli.sock`، يُنشأ بصلاحيات المالك وحده — وليس خادم HTTP عن عمد، فلا يستطيع تثبيتُ VPS أن ينبت منفذاً منصتاً بالصدفة.
* ونفق الهاتف **WebSocket صادر** إلى المُرحِّل. لا قاعدة جدار ناري، ولا توجيه منفذ، ولا شيء يُبلَغ من الخارج.
* وتيليجرام وواتساب اتصالان صادران إلى خدمتيهما.

فلا يحتاج الجهاز أيَّ ضبط جدارٍ ناريّ لوولفيش إطلاقاً — ومسحٌ للمنافذ من الخارج وجد شيئاً منصتاً فقد وجد شيئاً آخر. والموافقات من صدفةٍ غير تفاعلية **تُغلق على الرفض**، و`wolffish status --json` و`wolffish view` يحجبان القيم التي تشبه بيانات الاعتماد ما لم تمرّر `--raw`، ومفاتيح المزوّدين تُكتب مخفيّةً ولا تدخل تاريخ الصدفة أبداً.

## البيانات والتحديثات وإلغاء التثبيت

كلُّ شيءٍ يسكن **`~/.wolffish/`** — مساحة العمل، والمحادثات، والتكوين، والسجلّات، ومقبس العملية الخلفية. انسخ ذلك المجلد احتياطياً تكن نسخت الوكيل؛ و`wolffish service logs` يقرأ `~/.wolffish/workspace/logs/`.

والتحديث يتبع طريق الدخول: **AppImage تحدّث نفسها**؛ أمّا `.deb`/`.rpm` فلا تستطيع (فمدير الحزم ليس شيئاً ينبغي لتطبيقٍ أن يقوده)، فالتحديث هو إعادة تشغيل أمر التثبيت — والإعدادات ومساحة العمل لا تُمسّان. و`wolffish settings updates` يعرض الإصدار، ويفحص، ويطبع الجديد مصيَّراً.

وإلغاء التثبيت ثلاث خطواتٍ صادقة:

```bash theme={null}
wolffish service uninstall     # deregister autostart (unit / login entry)
sudo apt remove wolffish-app   # or: dnf remove / delete the AppImage
rm -rf ~/.wolffish             # every trace of data, gone
```

<Card title="طرفية CLI" icon="terminal" href="/ar/getting-started/cli">
  كلُّ ما يستطيعه الأمر — الجلسات، والطلقات المفردة، ومتصفّح الإعدادات، والموافقات، والمحرّرات، وجداول المرجع.
</Card>
