# إنشاء تطبيق

> كيفية إنشاء ونشر تطبيق جديد على تاروت

# إنشاء تطبيق

## من لوحة التحكم

1. اذهب إلى **التطبيقات** في الشريط الجانبي وابدأ تطبيقًا جديدًا.
2. اختر خطة التطبيق (المجانية، أو خانة من خطتك المدفوعة).
3. أدخل اسمًا (اختياري، وتولّد تاروت اسمًا إن تركته فارغًا) ووصفًا اختياريًا.
4. انقر **إنشاء التطبيق**. لن يُنشر شيء بعد، بل تفتح تاروت صفحة التطبيق الجديد.
5. في تبويب **عام** للتطبيق، اختر مصدر الكود:
   - **GitHub** - اختر المستودع والفرع من حساب GitHub المتصل.
   - **GitLab** - اختر المستودع والفرع من حساب GitLab المتصل.
   - **رفع ملف** - ارفع ملفات مشروعك.
   - **Docker Hub** - صورة عامة مثبّتة ببصمة `sha256` (راجع قسم Docker Hub أدناه).
6. انقر **نشر** لبدء أول عملية نشر.

إذا لم يكن تطبيقك في جذر المستودع (مثل monorepo)، اضبط **المجلد الجذر** من **الإعدادات ← إعدادات البناء والإخراج** قبل النشر.

## من سطر الأوامر

```bash
# انتقل إلى مجلد مشروعك
cd my-app

# افحص المشروع، وأنشئ أو اربط التطبيق، واربط مستودع GitHub (أو ارفع هذا المجلد)، ثم انشر
tarout deploy --wait
```

عندما يحتوي المجلد الحالي على إشارات قاعدة بيانات أو تخزين ملفات أو Git، يعرض `tarout deploy` ما اكتشفه ويسأل قبل إنشاء الموارد. GitHub اختياري: إذا لم يكن لدى المستخدم حساب GitHub، استخدم خيار رفع المجلد المحلي الافتراضي.

## إعدادات البناء

تاروت تكتشف إطار العمل تلقائيًا وتضبط إعدادات البناء. لتغييرها، افتح تبويب **الإعدادات** في التطبيق واستخدم بطاقة **إعدادات البناء والإخراج** (إطار العمل، والمجلد الجذر، ومجلد الإخراج، وأوامر التثبيت والبناء والتشغيل)، ثم أعد النشر.

### متغيرات بيئة البناء

تُضبط المتغيرات من تبويب **المتغيرات** في التطبيق. لا يصل إلى مرحلة البناء إلا المتغيرات التي تبدأ ببادئة عامة أو بادئة خاصة بأداة البناء، مثل `NEXT_PUBLIC_` و`VITE_` و`REACT_APP_` و`PUBLIC_` و`RAILPACK_`. أما بقية المتغيرات فمتاحة وقت التشغيل فقط. راجع [متغيرات البيئة](https://tarout.sa/docs/applications/environment-variables) للقائمة الكاملة.

## مصادر النشر

### GitHub

اربط حساب GitHub في **الإعدادات ← مزودو Git**. تاروت تستخدم تطبيق GitHub للوصول الآمن - أنت تختار بالضبط أي مستودعات تشاركها.

### GitLab

اربط حساب GitLab في **الإعدادات ← مزودو Git**. تاروت تستقبل أحداث webhook للنشر التلقائي.

### Docker Hub

انشر صورة عامة من Docker Hub مثبّتة ببصمة ثابتة، مثل `nginx@sha256:<digest>`. تُرفض الوسوم مثل `nginx:latest` لأنها قد تتغير دون علمك، والسجلات الخاصة غير مدعومة بعد. حدّد المنفذ الذي تستمع عليه الحاوية (الافتراضي `3000`).

## حدود الموارد

التطبيقات على المجمع المشترك لها حدود موارد افتراضية. تواصل مع الدعم إذا احتجت حدودًا أعلى أو فكّر في خادم مخصص.

---

## Every Tarout agent guide

- [Start Here (Agents)](https://tarout.sa/docs/for-ai/start.md)
- [Overview](https://tarout.sa/docs/for-ai.md)
- [Deploying an app](https://tarout.sa/docs/for-ai/deploy.md)
- [Databases](https://tarout.sa/docs/for-ai/database.md)
- [Object storage](https://tarout.sa/docs/for-ai/storage.md)
- [Custom domains](https://tarout.sa/docs/for-ai/domains.md)
- [Plans and upgrades](https://tarout.sa/docs/for-ai/billing.md)
- [Troubleshooting](https://tarout.sa/docs/for-ai/troubleshoot.md)
- [Agent Onboarding](https://tarout.sa/docs/for-ai/onboarding.md)
- [CLI Reference](https://tarout.sa/docs/for-ai/cli-reference.md)
- [CLI JSON Schema](https://tarout.sa/docs/for-ai/cli-json-schema.md)

Whole corpus in one file: https://tarout.sa/llms-full.txt · index: https://tarout.sa/llms.txt
Any docs page is raw markdown at the same URL + `.md`. Short link to the entry point: https://tarout.sa/deploy.md
