⌨️ أداة سطر الأوامر

CLI غيمة

أداة سطر الأوامر الرسمية لإدارة تطبيقاتك على منصة غيمة السحابية. نشر التطبيقات، إدارة المشاريع، والتحكم الكامل في بنيتك التحتية من طرفك.

التثبيت السريع

curl -sSl https://cli.ghaymah.systems/install.sh | bash

ثم أعد تشغيل الطرفية ونفّذ: source ~/.bashrc

تثبيت CLI غيمة

اتبع هذه الخطوات لتثبيت أداة سطر الأوامر على نظامك.

1

تشغيل أمر التثبيت

افتح طرفيتك (Terminal) ونفّذ الأمر التالي:

$curl -sSl https://cli.ghaymah.systems/install.sh | bash
🔄 Installing Ghaymah CLI...
✅ Installation complete! You may need to restart your terminal.
2

التحقق من التثبيت

بعد اكتمال التثبيت، تحقق من أن الأداة تعمل بشكل صحيح:

$gy --version
Current version: 0.0.21
Latest version: 0.0.21
✅ You are using the latest version!

⚠️ ملاحظة لمستخدمي ويندوز

تحتاج إلى تثبيت وتكوين WSL لاستخدام CLI غيمة على Windows. يمكنك اتباع الدليل الرسمي من Microsoft.

المصادقة

سجّل الدخول إلى حساب غيمة الخاص بك عبر CLI.

تسجيل الدخول

gy auth login
سيطلب منك إدخال البريد الإلكتروني وكلمة المرور اللذين استخدمتهما عند التسجيل في deploy.ghaymah.systems.
$gy auth login

حالة المصادقة

gy auth status
يعرض معلومات حول حالة تسجيل الدخول الحالية، بما في ذلك الحساب المستخدم وجلسة العمل.
$gy auth status
مسجل الدخول كمحمد (mohamed@example.com)

إدارة المشاريع

أنشئ وأدر مشاريع غيمة الخاصة بك عبر CLI.

عرض المشاريع

gy resource project get
يعرض قائمة بجميع المشاريع في حسابك مع معرّفاتها الفريدة. ستحتاج إلى معرّف المشروع (Project ID) لتنفيذ عمليات أخرى.
[
  {
    "id": "prj_123456789",
    "name": "موقعي الإلكتروني",
    "created_at": "2023-06-15T08:30:00Z"
  }
]

إنشاء مشروع جديد

gy resource project create --set .name=my-new-project
ينشئ مشروعاً جديداً ويعرض معرّف المشروع (Project ID) الذي ستحتاجه لاحقاً.

💡 ملاحظة مهمة

احفظ معرّف المشروع (Project ID) الذي يعرضه CLI بعد الإنشاء، لأنك ستحتاجه لنشر التطبيقات.
$gy resource project create --set .name=mynewproject
تم إنشاء المشروع بنجاح!
Project ID: prj_987654321

نشر التطبيقات

انشر تطبيقاتك على منصة غيمة باستخدام CLI.

1

تهيئة التطبيق

انتقل إلى مجلد المشروع وتأكد من وجود ملف Dockerfile في الجذر، ثم نفّذ:

$gy resource application init --project-id prj_987654321
تم إنشاء ملف .ghaymah.json بنجاح

💡 ملف التهيئة

ينشئ هذا الأمر ملف .ghaymah.json في مجلد مشروعك يحتوي على إعدادات النشر الأساسية مثل منفذ التطبيق وحجم المثيل.
2

تعديل ملف التهيئة

افتح ملف .ghaymah.json وتأكد من أن المنفذ (port) مطابق للمنفذ الذي يعمل عليه تطبيقك محلياً:

مثال لملف .ghaymah.json:
{
  "id": "58bd02a2-a77a-4816-a6ab-468af19555bc",
  "name": "yt-transcript-api",
  "projectId": "79e27780-d883-4149-875a-6a3bdf4cb344",
  "ports": [
    { "expose": true, "number": 5000 }
  ],
  "publicAccess": {
    "enabled": true,
    "domain": "auto"
  },
  "resourceTier": "t1",
  "dockerFileName": "Dockerfile"
}

⚠️ تحذير

تأكد من أن قيمة المنفذ (number) داخل مصفوفة ports في ملف .ghaymah.json مطابقة للمنفذ الذي يعمل عليه تطبيقك محلياً، وإلا لن يعمل التطبيق بعد النشر.
3

نشر التطبيق

شغّل أمر النشر لبناء صورة Docker ونشر التطبيق على غيمة:

$gy resource application launch
يتم بناء الصورة...
يتم نشر التطبيق...
تم النشر بنجاح!
يمكنك الوصول للتطبيق على: https://myapp-abc123.ghaymah.systems

تتبع حالة النشر

gy resource application logs
يعرض سجلات التطبيق (logs) لمتابعة حالة النشر واستكشاف الأخطاء إن وجدت.

تهيئة التطبيق

خيارات إضافية لتهيئة تطبيقك قبل النشر.

إعداد المتغيرات البيئية

.ghaymah.json → env
يمكنك إضافة متغيرات بيئية إلى ملف .ghaymah.json في قسم env.

💡 أمان المتغيرات البيئية

لا تخزن معلومات حساسة مثل كلمات المرور مباشرة في ملف التهيئة. استخدم إدارة الأسرار (Secrets Management) في لوحة تحكم غيمة.
مثال لملف .ghaymah.json مع متغيرات بيئية:
{
  "projectId": "prj_987654321",
  "port": 3000,
  "instanceSize": "small",
  "env": {
    "DATABASE_URL": "postgres://user:pass@host:5432/db",
    "API_KEY": "your-api-key-here"
  }
}

إعداد النطاق المخصص

.ghaymah.json → domains
لإضافة نطاق مخصص (Custom Domain)، أضف مصفوفة domains إلى ملف .ghaymah.json.

💡 ملاحظة

بعد إضافة النطاقات، ستحتاج إلى تكوين سجلات DNS للنطاق لتوجيهه إلى غيمة. اتبع التعليمات في لوحة التحكم بعد النشر.
مثال لملف .ghaymah.json مع إعدادات المجال:
{
  "projectId": "prj_987654321",
  "port": 3000,
  "domains": ["example.com", "www.example.com"]
}