---
title: التثبيت
description: 'أضف LaRecipe إلى تطبيق Laravel بأمرين، واحصل على موقع توثيق يعمل وعلى إعداد للوكلاء يُبقيه محدّثًا.'
url: 'https://larecipe.saleem.dev/ar/3.x/get-started/installation'
version: 3.x
locale: ar
last_updated: '2026-10-19'
---

> Docs index: https://larecipe.saleem.dev/3.x/llms.txt · MCP: https://larecipe.saleem.dev/mcp · Skill: https://larecipe.saleem.dev/skill.md

# التثبيت

تحتاج إلى PHP بالإصدار 8.3 أو أحدث، و Laravel بالإصدار 12.62 أو أحدث (أو Laravel 13)، وإلى الأداة `git` على أجهزة المطوّرين وفي CI. أما خوادم الإنتاج فلا تحتاج إلى `git`.

1. **أضف الحزمة**

   ```bash
   composer require larecipe/larecipe
   ```

2. **شغّل المثبّت**

   ```bash
   php artisan larecipe:install
   ```

   يطرح المثبّت بضعة أسئلة. القيم الافتراضية تناسب معظم التطبيقات، فيمكنك أن تضغط Enter على كل منها.

3. **افتح التوثيق**

   زر المسار `/docs`. الصفحة الأولى مقدمة قصيرة كُتبت من تطبيقك: اسمه، وإصدار Laravel فيه، وحزمه الرسمية، ومطلع ملف README.

هذا موقع يعمل. وقد أعدّ المثبّت أيضًا وكلاء البرمجة لديك، ليبقى التوثيق محدّثًا منذ أول push. أضف إلى git كل ما كتبه، ما عدا الملف الموجود في `bootstrap/cache`.

الخطوة التالية: دع وكيل البرمجة يكتب صفحات أولية حقيقية من الكود في [توثيقك الأول](https://larecipe.saleem.dev/ar/3.x/get-started/your-first-docs.md).

## ما الذي يسأل عنه المثبّت

لكل سؤال خيار في سطر الأوامر، فيمكنك أن تجيب مسبقًا أو أن تشغّل المثبّت داخل سكربت.

| السؤال | الخيار | القيمة الافتراضية |
| --- | --- | --- |
| أين يُحفظ التوثيق؟ | `--driver=repository` أو `--driver=database` | `repository` |
| مجلد التوثيق في مجموعة المستودع | `--path=docs` | `docs` |
| وكلاء البرمجة الذين يُعَدّون | `--agents=claude,codex,cursor,gemini,copilot` أو `--agents=none` | الوكلاء الذين يكتشفهم |
| إيقاف push الوكيل مرة واحدة حين يترك صفحات قديمة | `--no-hooks` للتخطّي | نعم |
| فحص عمليات push التي يجريها الأشخاص من دون وكيل | `--git-hook=warn` أو `--git-hook=strict` | لا |
| إضافة فحص التوثيق الاختياري في CI من دون ذكاء اصطناعي | `--ci=fail` أو `--ci=comment` | لا |
| وضع المراجعة لتغييرات التوثيق | `--review=required` أو `--review=auto` | `required` |
| تحديث إعداد الوكلاء بعد كل `composer update` | `--composer-script` | يسأل |
| إضافة `@AGENTS.md` إلى ملف `CLAUDE.md` موجود | `--claude-md` | يسأل |
| إنشاء توثيق أولي الآن | `--onboard=product,api,package,internal` و `--onboard-agent=claude` | يسأل حين يكون وكيلٌ مثبّتًا |

يعرض الخيار `--dry-run` كل ملف سيغيّره المثبّت من دون أن يكتب شيئًا، ويستبعد `--no-index` فهرس التوثيق من `AGENTS.md`. ويمكنك تشغيل المثبّت مرة أخرى في أي وقت: فهو يدمج إعداداته في ملفاتك الموجودة ولا يستبدلها أبدًا.

## ما الذي يكتبه

مجلد التوثيق مع ملف التعريف وصفحة المقدمة، وكل ما يقرؤه وكلاؤك: كتلة LaRecipe في `AGENTS.md`، وأربع مهارات (skills)، وخادم MCP المحلي في إعدادات كل وكيل، وخطّاف pre-push لكل من Claude Code و Codex. أما خطّاف git وسير عمل CI فلا يُكتبان إلا إذا طلبتهما.

**كل ملف يكتبه المثبّت**

| الملف | ما هو |
| --- | --- |
| `docs/larecipe.json` | [ملف التعريف](https://larecipe.saleem.dev/ar/3.x/reference/manifest.md) لمجموعة التوثيق: الاسم من `APP_NAME` ومؤشّر `$schema`. |
| `docs/index.md` | صفحة المقدمة، وفيها `sources:` يشير إلى `README.md` و `composer.json`، فتظهر قديمة حين يتغيّران. يُتخطّى إن وُجد `docs/index.md` أو `docs/README.md` أو `docs/introduction.md`. |
| `database/migrations/docs/{timestamp}_docs_introduction.php` | مع `--driver=database` فقط، بدلًا من الملفين السابقين: ترحيل توثيق يمنح المجموعة اسمها وصفحة المقدمة نفسها. |
| `config/larecipe.php` | يُنشر فقط حين تختار غير الإعدادات الافتراضية (مشغّل قاعدة البيانات، أو مجلدًا آخر، أو المراجعة `auto`). |
| `AGENTS.md` | كتلة LaRecipe محدّدة بعلامات: ما يجب فعله بالتوثيق قبل كل push، وفهرس مختصر لصفحاتك. راجع [تعليمات الوكلاء](https://larecipe.saleem.dev/ar/3.x/keeping-current/agent-instructions.md). |
| `CLAUDE.md` | السطر `@AGENTS.md`، ولا يُضاف إلا بموافقتك، ليقرأ Claude Code التعليمات نفسها. |
| `.claude/skills/` و `.agents/skills/` | مهارات LaRecipe الأربع. راجع [المهارات](https://larecipe.saleem.dev/ar/3.x/keeping-current/skills.md). |
| `.mcp.json` و `.codex/config.toml` و `.cursor/mcp.json` و `.gemini/settings.json` و `.vscode/mcp.json` | خادم MCP المحلي `larecipe` (`php artisan larecipe:mcp`)، في الملف الذي يقرؤه كل وكيل مكتشَف. |
| `.claude/settings.json` و `.codex/hooks.json` | خطّافا pre-push و SessionStart لـ Claude Code و Codex. راجع [خطّاف pre-push](https://larecipe.saleem.dev/ar/3.x/keeping-current/pre-push-hook.md). |
| `.git/hooks/pre-push` | مع `--git-hook` فقط. ويحترم الإعداد `core.hooksPath`. |
| `.github/workflows/larecipe-docs-check.yml` | مع `--ci` فقط. راجع [فحص CI الاختياري](https://larecipe.saleem.dev/ar/3.x/keeping-current/ci-check.md). |
| `composer.json` | الأمر `@php artisan larecipe:agents --ansi` في `post-update-cmd`، بموافقتك فقط. |
| `bootstrap/cache/larecipe/hooks.php` | أنماط push المُجمَّعة التي يقرؤها الخطّاف، كي لا تُشغِّل أوامر الطرفية العادية تطبيق Laravel. لا يُضاف إلى git. |

يدمج المثبّت إعداداته في ملفاتك الموجودة. تبقى خوادم MCP والخطّافات الأخرى في مكانها، ولا يمسّ إدخال `larecipe` الموجود مسبقًا، ويتخطّى أي ملف لا يستطيع قراءته مع ملاحظة بذلك.

## تفاصيل

**التشغيل من دون أسئلة**

في سكربت، أو في CI، أو في حاوية تطوير، مرّر `--no-interaction` مع الإجابات التي تريدها:

```bash
php artisan larecipe:install --no-interaction \
    --driver=repository \
    --agents=claude,codex \
    --review=required \
    --claude-md \
    --composer-script
```

حين لا توجد طرفية يسأل فيها، يستخدم المثبّت القيم الافتراضية في الجدول أعلاه: مشغّل المستودع، والوكلاء الذين يكتشفهم، وخطّافات الوكلاء، ومن دون خطّاف git ولا فحص CI، ومع المراجعة `required`، ومن دون أي تغيير على `composer.json` أو `CLAUDE.md` ما لم تمرّر الخيار. ولا يجري الإعداد الأولي (onboarding) أبدًا من دون `--onboard`.

**كيف يكتشف وكلاءك**

يكتشف المثبّت الوكيل بطريقتين: أداة سطر الأوامر الخاصة به في `PATH` (`claude` و `codex` و `cursor-agent` و `gemini` و `copilot`)، أو ملفاته داخل المشروع (`.claude` و `CLAUDE.md` و `.codex` و `.cursor` و `.gemini` و `GEMINI.md` و `.github/copilot-instructions.md`). ولا يكتب الإعدادات إلا للوكلاء الذين تستخدمهم.

**أين يمكن أن يكون مجلد التوثيق**

يجب أن يكون مجلد التوثيق داخل تطبيقك. ويرفض المثبّت قيمة `--path` إن كانت المجلد الجذر للتطبيق نفسه، أو مجلدًا خارجه.

**مع Laravel Boost**

حين تكون الحزمة `laravel/boost` مثبّتة، يقدّم Boost تعليمات LaRecipe ومهاراته، فلا يكتب LaRecipe كتلة في `AGENTS.md` ولا نسخًا خاصة به من المهارات. شغّل `php artisan boost:install` (أو `boost:update`) واختر `larecipe/larecipe`. ويبقى `larecipe:install` هو من يكتب إعداد MCP والخطّافات. راجع [تعليمات الوكلاء](https://larecipe.saleem.dev/ar/3.x/keeping-current/agent-instructions.md#with-laravel-boost).

**مع مشغّل قاعدة البيانات**

يحفظ الخيار `--driver=database` التوثيق في قاعدة بياناتك، مع واجهة إدارة وترحيلات توثيق (docs migrations) للتغييرات التي تجري في طلبات الدمج. لا يكتب المثبّت مجلد `docs/` في هذه الحالة، بل يكتب [ترحيل توثيق](https://larecipe.saleem.dev/ar/3.x/sources/docs-migrations.md) أوليًا هو `database/migrations/docs/{timestamp}_docs_introduction.php`، فيه اسم المجموعة وصفحة المقدمة نفسها. ولا يكتب ترحيلًا ثانيًا إن شغّلته مرة أخرى. بعد ذلك:

1. شغّل `php artisan migrate`. ينشئ جداول LaRecipe، وهي تُحمَّل من الحزمة (وانشرها بالأمر `php artisan vendor:publish --tag=larecipe-migrations` إن أردت تخصيصها)، ثم يطبّق الترحيل الأولي، فيفتح `/docs` على صفحة المقدمة مباشرة.
2. استخدم مخزن ذاكرة مؤقتة دائمًا. تعمل مجموعة قاعدة البيانات دائمًا خلف ذاكرة مؤقتة، ويحذّرك المثبّت إن كان المخزن `array` أو `null`. اضبط `LARECIPE_CACHE_STORE` على `redis` أو `database` أو `file`.

اقرأ صفحة [مصدر قاعدة البيانات](https://larecipe.saleem.dev/ar/3.x/sources/database.md) قبل أن تختاره. تبدأ معظم الفرق بالمستودع.

**Codex و Ask AI**

خطوتان يعرضهما المثبّت حين تنطبقان:

- **Codex**: اجعل المشروع موثوقًا في `~/.codex/config.toml` ووافق على خطّافات LaRecipe عبر `/hooks`، ليحمّلها Codex.
- **Ask AI** يحتاج إلى الحزمة `laravel/ai` ومفتاح مزوّد خاص بك: `composer require laravel/ai`. وكل ما عدا ذلك يعمل من دونه. راجع [Ask AI](https://larecipe.saleem.dev/ar/3.x/agents/ask-ai.md).

**كل خيارات larecipe:install**

مقروءة مباشرة من سجلّ الأوامر في هذا التطبيق:

**Command** `larecipe:install`: Install LaRecipe: your docs, and the agent setup that keeps them current

```bash
php artisan larecipe:install [--driver [DRIVER]] [--path [PATH]] [--agents [AGENTS]] [--no-hooks] [--git-hook [GIT-HOOK]] [--ci [CI]] [--review [REVIEW]] [--claude-md] [--no-index] [--composer-script] [--onboard [ONBOARD]] [--onboard-agent [ONBOARD-AGENT]] [--dry-run]
```

Options:

| Option | Description | Default |
| --- | --- | --- |
| `--driver=DRIVER` | repository (recommended) or database |  |
| `--path=PATH` | The docs folder of a repository set | docs |
| `--agents=AGENTS` | Agents to set up, comma-separated (claude,codex,cursor,gemini,copilot), or "none" (default: the ones detected) |  |
| `--no-hooks` | Skip the pre-push and SessionStart agent hooks |  |
| `--git-hook=GIT-HOOK` | Also install the git pre-push hook: warn or strict |  |
| `--ci=CI` | Add the optional no-AI CI check: fail or comment |  |
| `--review=REVIEW` | required (default) or auto |  |
| `--claude-md` | Add @AGENTS.md to CLAUDE.md without asking |  |
| `--no-index` | Leave the docs index out of AGENTS.md |  |
| `--composer-script` | Add larecipe:agents to composer post-update-cmd without asking |  |
| `--onboard=ONBOARD` | Then write starter docs for these audiences: product,api,package,internal |  |
| `--onboard-agent=ONBOARD-AGENT` | The agent to run onboarding with |  |
| `--dry-run` | Show what would change without writing anything |  |

## التالي

- [توثيقك الأول](https://larecipe.saleem.dev/ar/3.x/get-started/your-first-docs.md): دع وكيل البرمجة يكتب صفحات أولية من تطبيقك.
- [أساسيات الإعداد](https://larecipe.saleem.dev/ar/3.x/get-started/configuration.md): الإعدادات القليلة التي تغيّرها معظم التطبيقات.
- [بنية المشروع](https://larecipe.saleem.dev/ar/3.x/get-started/project-structure.md): ما الذي يوضع وأين في `docs/`.
