mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 14:59:35 +00:00
6.9 KiB
6.9 KiB
ربط Railway — مسار AI Company (ai-company)
نفّذ في لوحة Railway بعد أن يكون الفرع ai-company مرفوعاً على GitHub.
0) عندك بالفعل Project على Railway — قائمة إكمال (لا تبدأ من صفر)
افتح نفس المشروع وامشِ بالترتيب؛ علّم كل بند عند الانتهاء.
- أي خدمة هي التطبيق؟ حدّد بطاقة Web / Service اللي تشغّل الـ API (مو Postgres وحدها).
- المصدر (Git): داخل الخدمة → Settings → Source (أو Connect repo):
- الريبو:
VoXc2/system-prompts-and-models-of-ai-tools. - Branch:
ai-company(وليس فرعاً قديماً إن غيّرت سياسة النشر).
- الريبو:
- Root Directory: لازم يكون
dealix. إن كان فارغاً أو.أو جذر المونوريبو، البناء قد ينجح والتشغيل يفشل أو العكس — عدّله واحفظ ثم Redeploy. - Start Command: بالضبط
uvicorn api.main:app --host 0.0.0.0 --port ${PORT:-8000}
واحذف أي أمر قديم (مثلاًpython main.pyمن جذر خاطئ). - Postgres: إن وُجدت في المشروع → تأكد أن
DATABASE_URL(أو المرجع منه) موجود في متغيرات خدمة التطبيق، ليس فقط داخل خدمة DB. - Variables: راجع قائمة المتغيرات في خدمة التطبيق مقابل
.env.staging.example— خصوصاًAPP_SECRET_KEY,APP_URL,APP_ENV,CORS_ORIGINS,DAILY_EMAIL_LIMIT,WHATSAPP_ALLOW_LIVE_SEND. - Networking: فعّل Public URL / دومين؛ حدّث
APP_URLوCORS_ORIGINSليطابقا الرابط الظاهر. - Deployments: آخر نشر — إن كان أحمر، Build Logs ثم Deploy Logs (انظر قسم 8 أدناه).
- اختبار:
/healthثمsmoke_stagingمن جهازك (قسم 5).
إن كان المشروع فيه أكثر من خدمة (قديمة + جديدة)، إمّا تعطيل النشر للقديمة أو حذفها لتتجنب لبس الدومين والمتغيرات.
1) المشروع والخدمة
- New Project → Deploy from GitHub → اختر
VoXc2/system-prompts-and-models-of-ai-tools. - أنشئ خدمة Web (أو عدّل الخدمة الحالية) لتشغيل Dealix API.
2) إعدادات النشر (إلزامي)
| الحقل | القيمة |
|---|---|
| Branch | ai-company |
| Root Directory | dealix |
| Start Command | uvicorn api.main:app --host 0.0.0.0 --port ${PORT:-8000} |
مرجع: STAGING_DEPLOYMENT.md.
3) قاعدة البيانات
- أضف PostgreSQL من Railway أو استخدم
DATABASE_URLخارجي. - اربط متغير
DATABASE_URLبخدمة التطبيق (غالباً يُحقن تلقائياً عند الربط).
4) متغيرات البيئة
- انسخ الأسماء من
.env.staging.example(staging) أو.env.example(production لاحقاً). - لا تُرفع
.envإلى Git. - تأكد من:
APP_SECRET_KEY,APP_URL,APP_ENV,CORS_ORIGINS,MOYASAR_*، وDAILY_EMAIL_LIMIT(وليسEMAIL_DAILY_LIMIT)، وWHATSAPP_ALLOW_LIVE_SEND=falseللبيتا حتى الموافقة.
5) التحقق بعد النشر
- المتصفح:
https://<your-host>/health→ 200. - محلياً:
STAGING_BASE_URL=https://<host>ثمpython scripts/smoke_staging.pyمن مجلدdealix. - GitHub Actions: شغّل يدوياً Dealix staging smoke بعد ضبط أسرار
STAGING_BASE_URL/STAGING_API_KEY— انظرGITHUB_ACTIONS_ENV_SETUP.md.
6) مسار Git الكامل
7) مسار لوحة Railway بالتفصيل (أين تضغط)
- Account → تأكد أن GitHub مربوط (للاستيراد من GitHub).
- New Project → Deploy from GitHub repo → اختر
system-prompts-and-models-of-ai-tools. - إن أنشأ Railway خدمة تلقائياً، افتح الخدمة (البطاقة) → Settings:
- Source → Branch =
ai-company. - Root Directory =
dealix(إن لم يظهر، ابحث في نفس الصفحة عن Root / Watch paths حسب واجهة Railway).
- Source → Branch =
- Settings → Deploy (أو Build):
- Start Command كما في الجدول أعلاه.
- إن وُجد Builder أو Nixpacks: غالباً يكفي أن يوجد
requirements.txtداخلdealixبعد ضبط Root.
- أضف PostgreSQL من نفس المشروع (+ New → Database → PostgreSQL).
- في خدمة Postgres: Variables → انسخ
DATABASE_URL(أو استخدم Connect واربط المرجع بخدمة الويب عبر Reference Variable إن ظهرت لك الخاصية). - في خدمة الويب → Variables: أضف باقي المتغيرات يدوياً (لا تلصقها في شات).
- Networking (أو Settings → Public Networking): فعّل Generate Domain أو اربط دومينك؛ هذا هو الـ host لـ
APP_URLوCORS_ORIGINSوSTAGING_BASE_URLفي GitHub. - Deployments: راقب آخر build — إن فشل، افتح Build Logs ثم Deploy Logs.
8) أين «توقف» غالباً — تشخيص سريع (بدون أسرار)
| العرض في Railway | ماذا تفعل |
|---|---|
Build failed / pip install error |
تأكد Root Directory = dealix وأن requirements.txt يظهر في سجل البناء تحت dealix/. |
| Deploy OK لكن 502 / Application failed | Deploy Logs: غالباً خطأ استيراد أو DATABASE_URL فارغ أو APP_SECRET_KEY ناقص. |
| Container exits immediately | غالباً أمر التشغيل خطأ أو المنفذ؛ استخدم الأمر في الجدول وPORT من Railway. |
/health لا يفتح |
Networking غير مفعّل أو الخدمة ليست Web على المنفذ الصحيح. |
/health 200 لكن smoke يفشل على مسارات |
راجع API_KEYS على السيرفر وطابق STAGING_API_KEY في الدخان أو GitHub Secrets. |
| DB connection error | تأكد أن DATABASE_URL مرتبط بخدمة التطبيق وليس فقط داخل Postgres؛ وشكل الرابط متوافق مع async (التطبيق يطبيع postgres://). |
9) بعد النجاح
- حدّث
LAUNCH_DAY_VERIFICATION_LOG.mdبصف staging. - راجع
BETA_PRIVATE_GATES_CHECKLIST.mdقبل أول عميل.